啟動方式對的不同下載模式
STM32可以通過BOOT引腳的配置,來選擇不同的啟動模式------對應不同的下載方式。
仿真器下載—— 內部FLASH的啟動方式
串口下載 —— 系統存儲器的啟動方式
內部SRAM一般不用,不講
啟動過程
以內部FLASH的啟動方式為例:
啟動文件用匯編編寫,是系統上電復位后第一個執行的程序。啟動文件主要做了以下工作:
當芯片上電后,會讀取0x00000000 地址的值賦值給棧指針 MSP,讀取0x00000004 地址的值賦值給程序指針 PC。但因為采樣到 BOOT0 引腳為低電平時,0x000000000x00000004 地址被映射到內部 FLASH 的首地址 0x08000000 和 0x08000004。完成這兩個操作后,內核就可以開始從 PC 指向的地址中讀取指令執行了。
在.map文件里可以看到中斷向量表的地址就是0x08000000 。
0x08000004存放的就是Reset_Handler函數的地址,重新就會從Reset_Handler函數開始執行。
可以看到,在Reset_Handler函數里完成了SystemInit函數(系統時鐘)的調用,以及調用main函數(用戶程序)。