APP下载

基于Cortex-M3位带地址映射技术的位带操作研究与实现

2020-11-13李国强

关键词:定义

李国强

(安徽华东中投科技有限公司,安徽 合肥 230000)

在当今的计算机控制领域中,许多智能控制产品都使用了基于Cortex-M3内核的Arm处理器。在这里,主要针对Arm处理器内核Cortex-M3存储器支持的“bit-band”位带,对位带地址映射技术进行研究以及如何实现位带操作。

一、 Cortex-m3的位带区与位带别名区

Cortex-M3是Arm处理器内核,可支持4GB存储空间,Cortex-M3内核是通过ICode、DCode、System总线与STM32内部的Flash、SROM相连接的,Cortex-M3存储器支持“bit-band”位带。在Cortex-M3存储器中有二个 1MB的位带区,以及对应的32MB的“位带别名(alias)区” 。位带别名区可以把每个位(bit)扩展成一个32位的字。当通过位带别名区访问这些字时,就可以达到访问原来位的目的,如图1所示。

在SRAM区的底部,有一个 1MB的位带区,这个位带区还有一个对应的32MB的“位带别名(alias)区”,容纳了8M个“位变量”,每个位变量是32位(既1个字4个字节)。位带区对应的是最低的1MB地址范围,而位带别名区里面的每个字对应位带区的一个bit位。位带操作只适用于数据访问,不适用于取指。

图1 位带区与位带别名区示意图

在片上外设区的底部,也有一个1MB的位带区,并有一个与其对应的32MB的位带别名区,用于快捷访问外设寄存器。这样,就使得我们访问各种控制位和状态位,就像访问普通内存一样方便。

二、Cortex-m3的位带地址映射

存储器映射是指把芯片中或芯片外的FLASH、RAM以及外设等进行了统一编址,即用地址来表示对象。Cortex-M3存储器的4G地址空间被划分为大小相等的8块区域,每块区域大小为512M。

这里划分的8块区域是粗线条的,主要包括代码、SRAM、外设、外部RAM、外部设备、专用外设总线-内部、专用外设总线-外部、特定厂商等。……

登录APP查看全文

猜你喜欢

定义
活用定义巧解统计概率解答题
例谈椭圆的定义及其应用
题在书外 根在书中——圆锥曲线第三定义在教材和高考中的渗透
永远不要用“起点”定义自己
严昊:不定义终点 一直在路上
定义“风格”
成功的定义
有壹手——重新定义快修连锁
修辞学的重大定义
山的定义