單片機(jī)內(nèi)部的FLASH除了存儲固件以外,經(jīng)常將其分成多個區(qū)域,用來存儲一些參數(shù)或存儲OTA升級的待更新的固件,這時就會涉及到單片機(jī)內(nèi)部FLASH的編程和擦除操作,STM32不同系列的單片機(jī)內(nèi)部FLASH特性和扇區(qū)大小都不太一樣,如果不注意這些細(xì)節(jié),那就等著爬坑吧
1、FLASH的分區(qū)以及扇區(qū)大小
FLASH擦除是按照扇區(qū)擦的,所以這個很重要,在工程中全局搜索 FLASH_PAGE_SIZE 宏就可以查看該芯片的頁(扇區(qū))大小,改宏在 stm32xxx_hal_flash.h中有定義
2、FLASH擦拭后的狀態(tài)
F1和F4系列的芯片F(xiàn)LASH在擦除后會是0xFFFFFFFF,而L1系列的芯片F(xiàn)LASH在擦除后是0x00000000!!!!!
3、FLASH的編程速度
L1芯片內(nèi)部FLASH編程速度比F1慢50倍?。?!所以在使用L1芯片寫入數(shù)據(jù)時相對于F1慢是正常的
2、STM32 F1、F4、L1系列內(nèi)部FLASH分區(qū)及大小
1、STM32F1系列
對于F1系列的芯片大容量產(chǎn)品的FLASH主存儲器每頁大小為2K,如【下圖】,而中容量和小容量的產(chǎn)品每頁大小只有1K

2、STM32F4系列
分為2個Bank,每個Bank分為12個扇區(qū),前4個扇區(qū)為16KB大小,第五個扇區(qū)是64KB大小,剩下的7個扇區(qū)都是128K大小

3、STM32L1系列
3、STM32 F1、F4、L1系列內(nèi)部FLASH編程時間
信息參考對應(yīng)芯片的數(shù)據(jù)手冊的 Electrical characteristics 章節(jié)

1、STM32F1系列
可以看出F1系列內(nèi)部FLASH頁擦除時間最大為40ms,半字寫入的時間為52.2us,比如按字寫入1024字節(jié)數(shù)據(jù),需要26.8ms,還是比較快的

2、STM32F4系列
可以看出F4系列內(nèi)部不同扇區(qū)擦除時間也不一樣的,字寫入的時間為16us,比如按字寫入1024字節(jié)數(shù)據(jù),只需要4ms,非???/p>

3、STM32L1系列
可以看出L1系列內(nèi)部FLASH頁擦除和編程的時間都是3.28ms,比如按字寫入1024字節(jié)數(shù)據(jù),需要840ms,非常慢;但是擦除是比較快的

編輯:hfy
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45500瀏覽量
670709 -
FlaSh
+關(guān)注
關(guān)注
10文章
1749瀏覽量
155561 -
存儲器
+關(guān)注
關(guān)注
39文章
7739瀏覽量
171720 -
STM32
+關(guān)注
關(guān)注
2310文章
11164瀏覽量
373559
發(fā)布評論請先 登錄
單片機(jī)Flash是什么類型
國產(chǎn)SPI NOR Flash接口閃存介紹
CW32F030 FLASH的頁擦除操作
FPGA實(shí)現(xiàn)基于SPI協(xié)議的Flash驅(qū)動控制芯片擦除
單片機(jī)內(nèi)部FLASH字節(jié)操作
請問有辦法在嵌入式單片機(jī)上實(shí)現(xiàn)對片外Flash的數(shù)據(jù)增刪功能嗎?
STM32C011開發(fā)(3)----Flash操作
請問STM32的內(nèi)部Flash操作是不是優(yōu)先級最高?
STM32F103RET6 FLASH擦除失敗的原因?怎么解決?
第二十九章 讀寫內(nèi)部FLASH
STM32單片機(jī)內(nèi)部FLASH的編程和擦除操作
評論