單片機(jī)內(nèi)部的FLASH除了存儲(chǔ)固件以外,經(jīng)常將其分成多個(gè)區(qū)域,用來(lái)存儲(chǔ)一些參數(shù)或存儲(chǔ)OTA升級(jí)的待更新的固件,這時(shí)就會(huì)涉及到單片機(jī)內(nèi)部FLASH的編程和擦除操作,STM32不同系列的單片機(jī)內(nèi)部FLASH特性和扇區(qū)大小都不太一樣,如果不注意這些細(xì)節(jié),那就等著爬坑吧
1、FLASH的分區(qū)以及扇區(qū)大小
FLASH擦除是按照扇區(qū)擦的,所以這個(gè)很重要,在工程中全局搜索 FLASH_PAGE_SIZE 宏就可以查看該芯片的頁(yè)(扇區(qū))大小,改宏在 stm32xxx_hal_flash.h中有定義
2、FLASH擦拭后的狀態(tài)
F1和F4系列的芯片F(xiàn)LASH在擦除后會(huì)是0xFFFFFFFF,而L1系列的芯片F(xiàn)LASH在擦除后是0x00000000!!!!!
3、FLASH的編程速度
L1芯片內(nèi)部FLASH編程速度比F1慢50倍!!!所以在使用L1芯片寫(xiě)入數(shù)據(jù)時(shí)相對(duì)于F1慢是正常的
2、STM32 F1、F4、L1系列內(nèi)部FLASH分區(qū)及大小
1、STM32F1系列
對(duì)于F1系列的芯片大容量產(chǎn)品的FLASH主存儲(chǔ)器每頁(yè)大小為2K,如【下圖】,而中容量和小容量的產(chǎn)品每頁(yè)大小只有1K
2、STM32F4系列
分為2個(gè)Bank,每個(gè)Bank分為12個(gè)扇區(qū),前4個(gè)扇區(qū)為16KB大小,第五個(gè)扇區(qū)是64KB大小,剩下的7個(gè)扇區(qū)都是128K大小
3、STM32L1系列
3、STM32 F1、F4、L1系列內(nèi)部FLASH編程時(shí)間
信息參考對(duì)應(yīng)芯片的數(shù)據(jù)手冊(cè)的 Electrical characteristics 章節(jié)
1、STM32F1系列
可以看出F1系列內(nèi)部FLASH頁(yè)擦除時(shí)間最大為40ms,半字寫(xiě)入的時(shí)間為52.2us,比如按字寫(xiě)入1024字節(jié)數(shù)據(jù),需要26.8ms,還是比較快的
2、STM32F4系列
可以看出F4系列內(nèi)部不同扇區(qū)擦除時(shí)間也不一樣的,字寫(xiě)入的時(shí)間為16us,比如按字寫(xiě)入1024字節(jié)數(shù)據(jù),只需要4ms,非常快
3、STM32L1系列
可以看出L1系列內(nèi)部FLASH頁(yè)擦除和編程的時(shí)間都是3.28ms,比如按字寫(xiě)入1024字節(jié)數(shù)據(jù),需要840ms,非常慢;但是擦除是比較快的
編輯:hfy
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635356 -
FlaSh
+關(guān)注
關(guān)注
10文章
1635瀏覽量
148034 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163842 -
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356054
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論