stm32的flash分為主儲存塊、資訊塊和快閃儲存器儲存器介面暫存器等
3 部分組成。
主儲存塊用於儲存具體的程式**和使用者資料。起始位址0x08000000,b0和b1接gnd從這裡開始執行程式。
資訊塊用於負責由stm32出廠時放置2kb的啟動程式(bootloader)和512b的使用者配置資訊區。啟動程式**,是用來儲存
快閃儲存器儲存器介面暫存器,該部分用於控制快閃儲存器讀寫等,是整個快閃儲存器模組的控制機構 。
在執行快閃儲存器寫操作時,任何對快閃儲存器的讀操作都會鎖住匯流排,在寫操作完成後讀操作才能正確地進行;既在進行寫或擦除操作時,不能進行**或資料的讀取操作。對主儲存器和資訊塊的寫入由內嵌的快閃儲存器程式設計
/擦除控制器
(fpec)
管理 。
主儲存器是以頁為單位劃分的。stm32根據flash主儲存塊容量、頁面的不同,系統儲存器的不同,分為小容量、中容量、大容量、互聯型,共四類產品。
小容量產品:主儲存塊1-32kb, 每頁1kb。系統儲存器2kb
中容量產品:主儲存塊64-128kb, 每頁1kb。系統儲存器2kb
大容量產品:主儲存塊256kb以上, 每頁2kb。系統儲存器
2kb互聯型產品:主儲存塊256kb以上, 每頁2kb。系統儲存器18kb
對flash的寫入操作要遵循「先擦除後寫入」的原則。flash程式設計操作都是以頁為單位寫入,寫入的操作必須要以32位字或16位半字寬度資料為單位,允許跨頁寫。
flash
最快訪問速度≤
24mhz ,cpu使用
72mhz
的主頻操作flash需要加入等待時間。
快閃儲存器的程式設計和擦除
stm32
的快閃儲存器程式設計是由
fpec
(快閃儲存器程式設計和擦除控制器)模組
處理的,包含 7 個
32 位暫存器:
fpec 鍵暫存器(flash_keyr)
選擇位元組鍵暫存器(flash_optkeyr)
快閃儲存器控制暫存器(flash_cr)
快閃儲存器狀態暫存器(flash_sr)
快閃儲存器位址暫存器(flash_ar)
選擇位元組暫存器(flash_obr)
寫保護暫存器(flash_wrpr)
fpec
鍵暫存器
(flash_keyr)包含3個鍵值
rdprt
=0x000000a5
key1=0x45670123
key2=0xcdef89ab
stm32復位以後,
fpec
(快閃儲存器程式設計和擦除控制器)模組被保護,無法操作快閃儲存器控制暫存器
(flash_cr);將特定序列寫入到fpec
鍵暫存器
(flash_keyr)才可以操作
fpec
(快閃儲存器程式設計和擦除控制器)模組,寫保護解除。
stm32快閃儲存器程式設計必須寫入半字(16bit),無法寫入其他型別資料。快閃儲存器控制暫存器
(flash_cr)中pg=1,在乙個快閃儲存器位址寫入乙個半字將啟動一次程式設計 。在程式設計過程中快閃儲存器狀態暫存器
(flash_sr)中
bsy =1
,任何讀寫快閃儲存器的操作都會使
cpu暫停,直到此次快閃儲存器程式設計結束。 flash中被寫入的位址必須是擦除掉的(0xffff)。
flash程式設計操作
1.檢查
flash_cr
的 lock
是否解鎖,如果沒有則先解鎖
2.檢查
flash_sr
暫存器的
bsy
位,以確認沒有其他正在進行的程式設計操作
3.設定
flash_cr
暫存器的
pg 位為』 1』
4.在指定的位址寫入要程式設計的半字
5.等待
bsy
位變為』 0』
6.讀出寫入的位址並驗證資料
flash分為頁擦除和整片擦除。
頁擦除
1. 檢查
flash_cr
的 lock
是否解鎖,如果沒有則先解鎖
2. 檢查
flash_sr
暫存器的
bsy
位,以確認沒有其他正在進行的快閃儲存器操作
3. 設定
flash_cr
暫存器的
per
位為』 1』
4. 用
flash_ar
暫存器選擇要擦除的頁
5. 設定
flash_cr
暫存器的
strt
位為』 1』
6. 等待
bsy
位變為』 0』
7. 讀出被擦除的頁並做驗證
STM32內部Flash的操作函式
1.iap遠端更新機制說明 3.stm32內部flash的操作函式 stm32 操作內部flash的函式介面 include inflash.h include stm32f10x flash.h 功 能 不檢查的寫入內部flash param1 起始位址 param2 要寫入的資料指標 param...
stm32 讀寫內部Flash
stm32的flash分為主儲存塊和資訊塊。主儲存塊用於儲存具體的程式 和使用者資料,資訊塊用於負責由stm32出廠是放置2kb的啟動程式 bootloader 和512b的使用者配置資訊區。主儲存塊是以頁為單位劃分的,一頁大小為1kb。範圍為從位址0x08000000開始的128kb內。對flas...
STM32 內部結構
為了進一步明確stm32103系列mcu的內部資源。我們可以從兩份資料著手學習。乙份是 stm32中文資料 乙份是 stm32f103中文資料 您的英文水平如果還可以,那麼您就使用原版的英文資料。但是因為中文資料是廠家提供的。那我們基本可以放心使用了。我們檢視 stm32中文資料 的第二節 儲存器和...