在系統復位後,sysclk的第4個上公升沿,boot引腳的值將被鎖存。使用者可以通過設定boot1和boot0引腳的狀態,來選擇在復位後的啟動模式。
在從待機模式退出時,boot引腳的值將被被重新鎖存;因此,在待機模式下boot引腳應保持為需要的啟動配置。在啟動延遲之後,cpu從位址0x0000 0000獲取堆疊頂的位址,並從啟動儲存器的0x0000 0004指示的位址開始執行**。
注意: 當從內建sram啟動,在應用程式的初始化**中,必須使用nvic的異常表和偏移暫存器,從新對映向量表之sram中。中斷向量表
無論用哪種模式啟動,復位時棧頂指標總能在0x00000000(或0x08000000)處找到,而復位向量總能在0x00000004(或0x08000004)處找到。在討論啟動過程之前先了解一下記憶體五區:
接下來進行**的編寫:
#include
#include
//定義全域性變數
位址為0x00000000
位址為0x08000000
先執行systeminit,其主要作用是對系統時鐘進行初始化配置。然後就會繼續呼叫__main庫函式(__main並不是指函式入口main函式),其主要的功能是軟體設定sp、載入.data.bss並初始化棧區。
本次了解了通過stm32的三種啟動方式,flash,系統儲存器和sram儲存器,這三種通過兩個boot引腳的電平來區分使用何種方式啟動,然後通過系統儲存器啟動方式是比較複雜的,需要不斷改變boot引腳的電平來實現,而後又通過兩種啟動方式燒錄到軟體後,程式執行的位址和理論位址是由一定的差異。
stm32第二章-啟動過程詳解
stm32三種啟動方式
STM32的三種Boot模式
所謂啟動,一般來說就是指我們下好程式後,重啟晶元時,sysclk的第4個上公升沿,boot引腳的值將被鎖存。使用者可以通過設定boot1和boot0引腳的狀態,來選擇在復位後的啟動模式。棧區 變數位址 i 20000760 p 2000075c str 20000750 堆區 動態申請位址 2000...
STM32的三種Boot模式
二.例項分析 1.三種boot模式的介紹所謂啟動,一般來說就是指我們下好程式後,重啟晶元時,sysclk的第4個上公升沿,boot引腳的值將被鎖存。使用者可以通過設定boot1和boot0引腳的狀態,來選擇在復位後的啟動模式。第一種 main flash memory 從使用者快閃儲存器 flash...
大話STM32三種BOOT模式的差異
三 參考?所謂啟動,一般來說就是指我們下好程式後,重啟晶元時,sysclk的第4個上公升沿,boot引腳的值將被鎖存。使用者可以通過設定boot1和boot0引腳的狀態,來選擇在復位後的啟動模式。啟動模式 主快閃儲存器儲存器 main flash memory 系統儲存器 system memory...