云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > CORTEX-M4知识点总结

CORTEX-M4知识点总结

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 8:11:07

· 数据访问(如SRAM区域) · 外设(如外设区域)

系统 0.5GB外部设备 1GB外部RAM 1GB外设 0.5GBSRAM 0.5GBCODE 0.5GB

某款芯片的存储器映射分配

PWM registerGPIO registerAnalog control(ADC/TP/Analog Reg/1k sram)0x50C0_0000IO control0xFFFF_FFFFReserved0xF000_00000xE000_0000Private Peripheral Bus7816 register0x5090_0000SPI3 registerSPI2 registerSPI1 registerSPI0 registerReservedTimer_2 registerTimer_1 registerTimer_0 registerAPBBRG device0x5000_0000WDT registerRTC registerCRC register0x4010_00000x4000_0000FLASH CTRLDMAReserved0x3000_00000x2000_00000x60_0000SRAMReserved8KBytes32KBytes0x50F0_00000x50D0_00000x50B0_00000x5073_00000x5072_00000x5071_00000x5070_00000x5062_00000x5061_00000x5060_00000x5050_00000x5040_00000x5030_00000x5023_0000UART3 registerUART2 registerUART1 registerUART0 registerI2C_1 registerI2C_0 register0x5010_0000SCU(clockResetPmucalendar)0x5000_00000x5022_00000x5021_00000x5020_00000x5011_00000x0000_0000FLASH MEMORY128K+4K FLASH 一般Code放在Flash当中,数据放在RAM中。数据在RAM存放有一定的顺序,可以分为数据段,BSS段、堆和栈区域。

· 数据段,存储在内存的底部,包含初始化的全局变量和静态变量。

· BSS段,未初始化的数据。

· 堆,C函数自动分配存储器区域,例如alloc()和malloc()。 · 栈,用于临时数据存储,局部变量,函数调用

存储器栈(向下增长)堆(向上增堆(向上增长)长)BSS段数据段0x20000000

2.3.3 栈存储

同几乎所有的处理器架构一样,Cortex-M处理器在运行时需要栈存储和栈指

针R13。ARM处理器将系统主存储器用于栈空间操作,使用PUSH指令往栈中存储数据以及POP指令从栈中提取数据。

处理器使用的是满递减的模型,栈指针是向下增长的。处理器启动后,SP被设置为栈存储空间的最后的位置,也就是最低位置,PUSH时,SP指针首先减小,然后将数据压入栈中。POP的时候相反,先将当前SP所指的数据出栈,然后再修改SP,SP此时增大。可用下面两幅图加以理解,

PUSH操作栈空间寄存器0x123456780x999999990x12345678R13(SP)R13(SP)

POP操作栈空间0x99999999R13(SP)R13(SP)寄存器0x12345678

栈中主要用于:

· 存储局部变量

· 异常产生时保存处理器状态(LR、xPSR)和寄存器数值 · 函数调用时

2.4复位和复位流程

对于典型的Cortex-M处理器,复位类型有三种:

· 上电复位。复位微控制器中所有部分。

· 系统复位。只会复位处理器和外设,不包括处理的调试支持部件 · 处理器复位。只复位处理器。

在复位后以及处理器开始执行程序前,处理器会从存储器中读出头两个字节。第一个字表示主栈指针的初始值。第二个字代表复位处理起始地址的复位向量。处理器读出这两个自己后,就会将这些数值赋给MSP和PC。

读地址0x00000000取MSP初始值读地址0x00000004取复位向量读取复位向量表示的地址复位取第一条指令时间 之前在栈存储时讲到过,Cortex-M处理器的栈操作时基于满递减的,所以SP的初始值应该设置在栈顶的位置。例如,若存储器区域为0x20007C000~0x20007FFF(1KB),初始的栈指针就应该为0x20008000。 另外,对于Cortex-M处理器,向量表中向量地址的最低位应该为1,以代表他们为Thumb状态。对于下图中的例子,复位向量为0x101,而启动代码是从0

搜索更多关于: CORTEX-M4知识点总结 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

· 数据访问(如SRAM区域) · 外设(如外设区域) 系统 0.5GB外部设备 1GB外部RAM 1GB外设 0.5GBSRAM 0.5GBCODE 0.5GB 某款芯片的存储器映射分配 PWM registerGPIO registerAnalog control(ADC/TP/Analog Reg/1k sram)0x50C0_0000IO control0xFFFF_FFFFReserved0xF000_00000xE000_0000Private Peripheral Bus7816 register0x5090_0000SPI3 registerSPI2 registerSPI1 registerSPI0 registerReservedTimer_2 registe

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com