新日记
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.4 KiB

img

img

5.芯片启动流程
①上电后硬件设置SP、跳转到 Reset_Hander

②设置系统时钟(SystemInit)

③软件设置SP

④加载.data、.bss,并初始化栈区(__main)

⑤跳转到C文件的main函数

值得注意的是:Keil编译完成后:

Code:代表程序代码段

RO_DATA:代表只读数据段

RW_DATA:代表已经初始化全局数据

ZI_DATA:代表未初始化全局数据

由于程序在 FLASH 中直接通过总线进行访问,程序运行在 FLASH 上,而可更改的数据存于 SRAM 中,故:

RO_SIZE = Code + RO_DATA(占用 Flash )

RW_DATA = RW_DATA + ZI_DATA(占用 SRAM)

ROM_SIZE = Code + RO_DATA + RW_DATA ( 烧写到 FLASH 大小空间 )

针对 ZI 数据,是不存 FLASH 中,直接在 SRAM 中初始化为 0

image-20220408145225880

https://www.bilibili.com/video/BV1ZB4y1A7nS/

image-20220408151051998