读 “cortexM3” 权威指南 小记(二) --中断具体行为及存储系统

1,中断异常的响应

当CM3 开始响应一个中断时,会在它看不见的体内奔涌起三股暗流: 
    入栈:  把8 个寄存器的值压入栈 ::响应异常的第一个行动,就是自动保存现场的必要部分:依次把xPSR,  PC,  LR,  R12 以及R3‐ R0由硬件自动压入适当的堆栈中:如果当响应异常时,当前的代码正在使用PSP,则压入PSP,即使用线程堆栈;否则压入MSP,使用主堆栈。一旦进入了服务例程,就将一直使用主堆栈
    取向量:从向量表中找出对应的服务程序入口地址 ::当数据总线(系统总线)正在为入栈操作而忙得团团转时,指令总线(I‐ Code总线)可不是凉快地坐着看热闹——它正在为响应中断紧张有序地执行另一项重要的任务:从向量表中找出正确的异常向量,然后在服务程序的入口处预取指。入栈与取指这两个工作能同时进行。
    选择堆栈指针MSP/PSP,更新堆栈指针SP ,更新连接寄存器 LR ,更新程序计数器PC

2.异常返回

当异常服务例程执行完毕后,需要很正式地做一个“异常返回”动作序列,从而恢复先前的系统状态,才能使被中断的程序得以继续执行。从形式上看,有3 种途径可以触发异常
返回序列,如表所示;不管使用哪一种,都需要用到先前储的LR 的值。

存储器的位带操作

支持了位带中,有两个区中实现了位带。其中一个是SRAM 区的最低1MB 范围,第二个则是片内外设区的最低1MB 范围。这两个区中的地址除了可以像普通的 RAM 一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个32位的字。当你通过位带别名区访问这些字时,就可以达到访问原始比特的目的。

支持位带操作的两个内存区的范围是: 
  0x2000_0000‐0x200F_FFFF(SRAM 区中的
  0x4000_0000‐0x400F_FFFF(片上外设区中的最低1MB )

读 “cortexM3” 权威指南 小记(二) --中断具体行为及存储系统

时间: 2024-10-28 09:56:17

读 “cortexM3” 权威指南 小记(二) --中断具体行为及存储系统的相关文章

Cortex-M3权威指南中文版

Cortex-M3权威指南中文版,学习ARM Cortex-M3核的经典资料.前 言不管你是做软件的还是做硬件的,只要相中了ARM的Cortex‐M3处理器,这本书就是为你而写.以前Cortex‐M3的资料只有两个大部头,分别是:<Cortex‐M3技术参考手册>(Cortex‐M3 Technical Reference Manual, 简称Cortex‐M3 TRM)<ARMv7‐M应用程序级架构参考手册>(ARMv7‐M Application Level Architect

读HTTP权威指南的体会

国庆期间,我读了HTTP权威指南一书,现在我把总节为大家讲一下: Web 浏览器.服务器和相关的Web 应用程序都是通过HTTP 相互通信的.HTTP 是 现代全球因特网中使用的公共语言. 是对HTTP 的简要介绍.在本章中可以看到Web 应用程序是如何使用HTTP 进 行通信的,这样就可以对HTTP 如何完成其工作有个大概印象.我们将特别介绍以 下方面的内容: • Web 客户端与服务器是如何通信的: • (表示Web  内容的)资源来自何方:  • Web 事务是怎样工作的: • HTTP

Http权威指南(二)---读书笔记

Chart4 ====连接管理==== 一.TCP连接 1.  Http和Https的网络协议栈: 2.  Http在TCP/IP传输中的位置:   3.  Http怎么利用TCP传输: 二.Http依赖的TCP性能(延时)简介 1.  TCP连接建立握手:安全的三次握手 2.  TCP慢启动拥塞控制 (1)什么是慢启动:TCP连接会随时间进行自我“调谐”,初期将会限制连接的最大速度,到后期再逐渐加快. (2)该原因导致Http存在持久连接(Keep Live). 3.  数据聚焦的Nagle算

读JavaScript权威指南(第六版)笔记(第五章)

语句 表达式在JavaScript中是短语,那么语句就是JavaScript整句或命令.用句号作结尾来分隔语句.表达式计算出一个值,但语句用来执行以使某件事发生. 5.2复合语句和空语句 复合语句:用花括号把多条语句括起来形成符合语句. { x = Math.PI; cx = Math.cos(x); ................... } // 第一,语句块的结尾不需要分号 //第二,语句块中的行都有缩进 空语句:包含0条语句的语句.空语句就一个分号  //  : JavaScript解释

《JavaScript权威指南》学习笔记之二十---XMLHttpRequest和AJAX解决方案

一.AJAX概述 AJAX是Asynchronous JavaScript and XML的缩写,中文译作异步JavaScript和XML.AJAX 不是新的编程语言,而是一种使用现有标准的新方法,在不重新加载页面的情况下,与服务器交换数据并更新部分网页的艺术.其核心是:客户端的Javascript能够与web服务器进行异步数据交换. 二.AJAX基础---XMLHttpRequest对象 所有现代浏览器(IE7+.Firefox.Chrome.Safari 以及 Opera)均内建 XMLHt

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比,Javascript数组中的元素不必为相同的数据类型,可以在数组每个元素上混合使用数字.日期.字符串.Object,甚至添加一个嵌套数组. 一.创建数组 1.var arr1 = new Array(); /var  arr2 = new Array(length); /var arr3 = new Array(element1,element2...); var arr4 = [eleme

Android编程权威指南-读书笔记(二)-第一个小程序

Android编程权威指南-读书笔记(二) -第一个小程序 第一个例子介绍 应用名为GeoQuiz.用户通过单击True或False按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否. 这个例子为我们简单介绍了几个基本组件的使用,以及基本的事件监听.让我们对基本组件的使用和事件的监听有一个基本的了解. 这篇文章分为2个部分,第一部分就是创建简单的UI.第二个部分就是对这个UI增加代码来响应一些操作. (注:所有不明白或者不理解的东西其实都不重要,后面都会有更详细的介绍.) 本章的目标

读《Android开发权威指南》

因为去年双十二购买了一折的<Android 开发权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch Guide的书都特别棒,本书详细地介绍了Android开发的相关内容,而且使用的IDE是Android Studio这款比Eclipse先进多的工具,相比之下国内大部分书还在介绍基于Eclipse的Android开发环境搭建 orz,拜托进取下好不好.在暑假时候,一个人根据这本书自学了Android开发,虽然目