根據我一貫的作風,接下來該講燒寫/啟動模式,然後再講各種燒寫方法和過程,最後是啟動流程。
這一篇文章,就看一下 燒寫/啟動模式。
一、啟動模式(boot modes)
在stm32f10***裡,可以通過boot[1:0]引腳選擇三種不同啟動模式。
在系統復位後, sysclk的第4個上公升沿, boot引腳的值將被鎖存。使用者可以通過設定boot1和boot0引腳的狀態,來選擇在復位後的啟動模式。
在從待機模式退出時, boot引腳的值將被被重新鎖存;因此,在待機模式下boot引腳應保持為需要的啟動配置。在啟動延遲之後, cpu從位址0x0000 0000獲取堆疊頂的位址,並從啟動儲存器的0x0000 0004指示的位址開始執行**。
因為固定的儲存器映像,**區始終從位址0x0000 0000開始(通過icode和dcode匯流排訪問),而資料區(sram)始終從位址0x2000 0000開始(通過系統匯流排訪問)。 cortex-m3的cpu始終從icode匯流排獲取復位向量,即啟動僅適合於從**區開始(典型地從flash啟動)。 stm32f10***微控制器實現了乙個特殊的機制,系統可以不僅僅從flash儲存器或系統儲存器啟動,還可以從內建sram啟動。
根據選定的啟動模式,主快閃儲存器儲存器、系統儲存器或sram可以按照以下方式訪問:
● 從主快閃儲存器儲存器啟動:主快閃儲存器儲存器被對映到啟動空間(0x0000 0000),但仍然能夠在它原有的位址(0x0800 0000)訪問它,即快閃儲存器儲存器的內容可以在兩個位址區域訪問, 0x0000 0000或0x0800 0000。
● 從系統儲存器啟動:系統儲存器被對映到啟動空間(0x0000 0000),但仍然能夠在它原有的位址(互聯型產品原有位址為0x1fff b000,其它產品原有位址為0x1fff f000)訪問它。
● 從內建sram啟動:只能在0x2000 0000開始的位址區訪問sram。
注意: 當從內建sram啟動,在應用程式的初始化**中,必須使用nvic的異常表和偏移暫存器,從新對映向量表之sram中。
二、原理圖
從原理圖上,看一下我們的開發板是什麼啟動模式。
或者購買的正點開發板的原理圖
從原理圖上看都是:
boot1 x
boot0 0
所以是,從主快閃儲存器儲存器啟動的。
而上面說了,主快閃儲存器儲存器被對映到啟動空間(0x0000 0000),但仍然能夠在它原有的位址(0x0800 0000)訪問它,即快閃儲存器儲存器的內容可以在兩個位址區域訪問, 0x0000 0000或0x0800 0000。
STM32啟動模式
stm32三種啟動模式對應的儲存介質均是晶元內建的,它們是 1 使用者快閃儲存器 晶元內建的flash。2 sram 晶元內建的ram區,就是記憶體啦。3 系統儲存器 晶元內部一塊特定的區域,晶元出廠時在這個區域預置了一段bootloader,就是通常說的isp程式。這個區域的內容在晶元出廠後沒有人...
stm32啟動模式
1.實驗環境 野火stm32指南者 stm32f103vet6 使用者快閃儲存器 晶元內建的flash。正常的工作模式。sram 晶元內建的ram區,就是記憶體。可以用於除錯。系統儲存器 晶元內部一塊特定的區域,晶元出廠時在這個區域預置了一段bootloader,就是通常說的isp程式。這個區域的內...
STM32的啟動模式
注 當boot0接地時boot1不論是否接地都為主快閃儲存器儲存器 1 使用者快閃儲存器 晶元內建的flash。執行程式 boot0接地,boot1接任意,按復位鍵執行程式。3 sram 晶元內建的ram區,就是記憶體啦。rom,ram和flash的區別 rom在系統停止供電的時候仍然可以保持資料。...