Cortex-M4 存储器系统
-M4 存储器系统
-M处理器的总线接口为通用总线接口。微控制器存储器系统中的存储器一般为两种或更多:程序代码用的Flash存储器,数据用的静态RAM(SRAM),有时还会有电可擦除只读存储器()。软件开发人员主要了解程序存储器和SRAM的地址及大小。
存储器映射:-M处理器的4GB地址空间被分为了多个存储器区域,主要用于:程序代码访问(CODE区),数据访问(SRAM区),外设区域,处理器的内部控制和调试部件,存储器映射如下:
图1 某型号STM32的存储器映射
栈存储
栈可用于:
1.当正在执行的函数需要寄存器进行数据处理时,临时存储数据的初始值。这些数据在函数结束时可以被恢复出来,以免调用函数的程序丢失数据
2.往函数或子程序中的信息传递
3.用于存储局部变量
4.在中断等异常产生时保存处理器状态和寄存器数值
图2 栈
以下同时描述了堆栈指针R13(SP)的主堆栈指针(MSP) 和 进程堆栈指针(PSP)的使用模型。
图2-1 堆栈指针R13(SP)进出中断
图2-2 堆栈指针R13(SP)进出中断