ARM_Cortex-M3内核结构(9)
发布时间:2021-06-07
发布时间:2021-06-07
统服务呼叫指令(SVC)”来触发“SVC异常”,该异常的服务例程可以视具体情况而修改CONTROL[0]。
图 2.6 中断前后的状态转换
图 2.7 中断前后的状态转换+特权等级切换
2.4 存储器系统
2.4.1 存储器映射
Cortex-M3 采用了固定的存储映射结构,如图 2.8 所示。
Cortex-M3 的地址空间是 4GB, 程序可以在代码区,内部 SRAM 区以及外部 RAM 区中执行。但是因为 指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用己的总 线。
内部 SRAM 区的大小是 512MB,用于让芯片制造商连接片上的 SRAM,这个区通过系统总线来访问。 在这个区的下部,有一个 1MB 的区间,被称为“位带区”。该位带区还有一个对应的 32MB 的 “位带别 名(alias)区”,容纳了 8M 个“位变量”(对比 8051 的只有 128 个位变量),位带区对应的是最低的 1MB 地址范围,而位带别名区里面的每个字对应位带区的一个比特。位带操作只适用于数据访问,不适 用于取指。通过位带的功能,可以把多个布尔型数据打包在单一的字中,却依然可以从位带别名区中, 像访问普通内存一样地使用它们。位带别名区中的访问操作是原子的,消灭了传统的“读-改-写”三 步。