STM32 FALSH快閃儲存器程式設計原理

2021-09-25 06:49:38 字數 1702 閱讀 9800

按照不同容量

儲存器組織成32個 1k位元組/頁(小容量)

儲存器組織成128個 1k位元組/頁(中容量)

儲存器組織成256個 2k位元組/頁(大容量)

對於主儲存器和資訊塊的寫入由快閃儲存器程式設計/擦除控制器fpec管理,程式設計與擦除的高電壓由內部產生

內建快閃儲存器模組可以通過位址空間直接定址,在任何32位資料的讀操作都能訪問快閃儲存器模組的內容並得到相應的資料

例如,我們要從位址addr,讀取乙個半字(半字為16位,字為32位),可以通過如下的語句讀取

data = *(vu16 *)addr;
將addr強制轉換為vu16指標,然後取改指標所指向的位址的值,即得到addr位址的值,類似的,將上面的vu16改為vu8,即可讀取指定位址的乙個位元組

stm32的快閃儲存器程式設計是由fpec(快閃儲存器程式設計和擦除控制器)模組處理,這個模組包含7個32位的暫存器

fpec鍵暫存器flash_keyr

選擇位元組鍵暫存器 flash_optkeyr

快閃儲存器控制暫存器 flash_cr

快閃儲存器狀態暫存器 flash_sr

快閃儲存器位址暫存器 flash_ar

選擇位元組暫存器 flash_obr

寫保護暫存器 flash_wrpr

其中fpec共有三個鍵值:

rdprt鍵 = 0x000000a5

key1=0x45671234

key2=0xcdef89ab

擦除操作分為頁擦除和全片擦除

頁擦除:

①、檢查flash_cr的lock是否解鎖,如果沒有則先解鎖

②、檢查flash_sr暫存器的bsy位,以確認沒有其他正在進行的程式設計操作

③、設定flash_cr暫存器的per位為1(指定頁擦除)

④、用flash_ar暫存器選擇要擦除的頁

⑤、設定flash_cr暫存器的strt位為1(開啟頁擦除)

⑥、等待bsy位變為1(等待擦除完畢)

⑦、讀取被擦除的頁並做驗證

全片擦除:

①、檢查flash_cr的lock是否解鎖,如果沒有則先解鎖

②、檢查flash_sr暫存器的bsy位,以確認沒有其他正在進行的程式設計操作

③、設定flash_cr暫存器的mer位為1(指定全片擦除)

④、設定flash_cr暫存器的strt位為1(開啟頁擦除)

⑤、等待bsy位變為1(等待擦除完畢)

⑥、讀取被擦除的頁並做驗證

1、stm32復位後,fpec模組是寫保護的,不能寫入flash_cr暫存器,通過寫入特定的序列到flash_keyr暫存器可以開啟fpec模組(即key1和key2),只有在寫保護接觸後,我們才能操作相關暫存器

2、stm32快閃儲存器程式設計每次必須寫入16為,不能單純寫入8位的資料,當flash_cr暫存器的pg位為1時,在乙個快閃儲存器位址寫入乙個半字將啟動一次程式設計

3、在程式設計過程中flash_sr的bsy位為1,任何讀寫快閃儲存器的操作都會使cpu暫停,直到此次的快閃儲存器程式設計結束

4、stm32的falsh程式設計,也必須要求其寫入位址的flash是被擦除的也就是其值為0xfffffff,否則無法寫入

①、檢查flash_cr的lock是否解鎖,如果沒有則先解鎖

②、檢查flash_sr暫存器的bsy位,以確認沒有其他正在進行的程式設計操作

③、設定flash_cr暫存器的pg位為1,在指定的位址寫入程式設計的半字

④、等待bsy位變為0

⑤、讀出寫入的位址並驗證資料

oracle的快閃儲存器 Oracle快閃儲存器技術介紹

龍源期刊網 快閃儲存器技術介紹 摘要 oracle資料庫管理系統是當今應用最為廣發的一種資料庫。快閃儲存器技術作為一種儲存技術應用的也越來越廣泛。該文分別oracle中的快閃儲存器的使用方法 如快閃儲存器資料庫 快閃儲存器表 快閃儲存器查詢等技術。快閃儲存器技術通過在只更改資料上執行引發了恢復變革。...

希捷Nytro快閃儲存器新品擴大快閃儲存器產品組合

希捷科技公司今天在快閃儲存器峰會發布全新的nytro xf1440 2.5寸,nytro xm1440 m.2非易失性儲存 nvme 固態硬碟 ssd 及nytro xp6500快閃儲存器加速器卡。這些新品擴充套件了希捷快閃儲存器產品組合解決方案,旨在與希捷儲存產品相結合以滿足任何資料儲存需求。對於...

NOR型快閃儲存器與NAND型快閃儲存器的區別

分類 1 快閃儲存器晶元讀寫的基本單位不同 應用程式對nor晶元操作以 字 為基本單位。為了方便對大容量nor快閃儲存器的管理,通常將nor快閃儲存器分成大小為128kb或者64kb的邏輯塊,有時候塊內還分成扇區。讀寫時需要同時指定邏輯塊號和塊內偏移。應用程式對nand晶元操作是以 塊 為基本單位。...