2812 存储器映射及 CMD 2812 存储器映射 2812 具有32 位的数据地址和22 位的程序地址,总地址空间可以达到4M 的数据空间和4M 的程序空间
32 位的数据地址,就是能访问2 的32 次,是4G,而22 位的程序地址,就是能访问2 的22 次,是4M
其实,2812 可寻址的数据空间最大是4G,但是实际线性地址能达到的只有4M,原因是2812 的存储器分配采用的是分页机制,分页机制采用的是形如0xXXXXXXX 的线性地址,所以数据空间能寻址的只有4M
2812 的存储器被划分成了下面的几个部分: 1
程序空间和数据空间
2812 所具有的RAM、ROM 和FLASH 都被统一编址,映射到了程序空间和数据空间,这些空间的作用就是存放指令代码和数据变量
数据空间里面某些地址被保留了,作为 CPU 的仿真寄存器使用,这些地址是不向用户开放的
CPU 中断向量
在程序空间里也保留了 64 个地址作为 CPU 的 32 个中断向量
通过 CPU 寄存器 ST1 中的 VMAP 位来将这一段地址映射到程序空间的底部或者顶部
映射和空间的统一编址 F2812 内部的映射空间 低地址空间 高地址空间 2812CMD详解 CMD:command 命令,顾名思义就是命令文件指定存储区域的分配
2812 的CMD 采用的是分页制,其中PAGE0 用于存放程序空间,而PAGE1 用于存放数据空间
)#pragma ,CODE_SECTION 和 DATA_SECTION 伪指令 #pragma DATA_SECTION(funcA,"dataA"); ------ 函数外声明 将 funcA 数据块定位于用户自定义的段"dataA"中 ------ 需要在 CMD 中指定dataA 段的物理地址 2
)MEMORY 和SECTIONS 是命令