如果某一個(gè)天項(xiàng)目經(jīng)理提出一個(gè)需求,要求在現(xiàn)有STM32產(chǎn)品基礎(chǔ)上,內(nèi)部FLASH增加64K字庫(kù),你腦海中首先會(huì)想到什么?
1先說點(diǎn)其它
一般對(duì)于初學(xué)者來說,內(nèi)部FLASH完全足夠,跑一個(gè)簡(jiǎn)單的裸機(jī)Demo,或者一個(gè)RTOS加上兩個(gè)任務(wù)的Demo,對(duì)于現(xiàn)在的MCU完全沒有壓力。
但是,一旦你接觸到實(shí)際項(xiàng)目,你會(huì)發(fā)現(xiàn)很多地方都會(huì)開支FLASH,而且有些項(xiàng)目占用FLASH還不小。比如:某種特定算法,加載字庫(kù),甚至放兩張圖片在FLASH里面。
再拿一個(gè)IAP應(yīng)用編程的例子來說:一般對(duì)升級(jí)這個(gè)功能做的好一點(diǎn)的,會(huì)有一塊區(qū)域(備份區(qū)域)與應(yīng)用程序差不多大小的FLASH區(qū)域。就是說:為了保證安全,你程序下載保存在一個(gè)備份區(qū)域,等下載成功再更新應(yīng)用程序。 這樣做的目的:就是防止在下載的時(shí)候中途掉線,導(dǎo)致失敗。
找了一個(gè)圖,大致如下,將FLASH劃分為3個(gè)區(qū)域(引導(dǎo)程序FLASH區(qū)域、應(yīng)用程序FLASH區(qū)域、備份程序FLASH區(qū)域),你們琢磨一下。
2STM32芯片選型
一般我們項(xiàng)目提出需求之后,都會(huì)選擇一款合適的MCU,首先想到的就是查看【選型手冊(cè)】,除了選擇外設(shè)資源之外,還有就是選擇適合的FLASH容量大小。STM32產(chǎn)品命令規(guī)則如下:
選型手冊(cè)地址:
https://www.stmcu.com.cn/upload/Selection_Guide.pdf
(微信公眾號(hào)不支持外鏈接,復(fù)制網(wǎng)址打開)
3驗(yàn)證STM32內(nèi)部FLASH究竟有多大
說了關(guān)于FLASH的一些話題,回來說說本文的重點(diǎn):我們的STM32內(nèi)部FLASH可能不止上面選型手冊(cè)說的那么大一點(diǎn)。
比如:我的MCU芯片具體型號(hào)為STM32F103RF,查看手冊(cè)可以知道其容量為768K,但實(shí)際它有1M的FLASH容量。
我這里大概說兩點(diǎn)簡(jiǎn)單驗(yàn)證的方法:
1.通過編程驗(yàn)證
簡(jiǎn)單來說就是通過擦除,寫入,讀取指定地址(就是超過FLASH大小的地址)。
FLASH_EraseSector
2.通過工具讀取FLASH數(shù)據(jù)
這個(gè)辦法是最直接,也是最簡(jiǎn)單的辦法。拿STM32 ST-LINK Utility這個(gè)下載工具來舉例說明:
重點(diǎn)其實(shí)都在圖中描述出來了:超過768K地址,實(shí)際上還可以讀出來數(shù)據(jù)的。
(上圖是我拿STM32F103RF真實(shí)MCU讀出來的,應(yīng)用程序起始地址就是0x080C0000,應(yīng)用程序?qū)嶋H也運(yùn)行起來了)
說了這么多,其實(shí)我想說的是:STM32芯片有許多也是類似,不止我上面舉例的STM32F103RF,103RC標(biāo)稱的是256K,其實(shí)不止256K空間。如果你發(fā)現(xiàn)你FLASH空間不足了,通過上面方法可以看看是否不止那么大的空間。
最后留一個(gè)問題:你知道為什么ST廠家會(huì)這么操作嗎?
-
FlaSh
+關(guān)注
關(guān)注
10文章
1642瀏覽量
148686 -
ST
+關(guān)注
關(guān)注
32文章
1138瀏覽量
129180 -
STM32
+關(guān)注
關(guān)注
2272文章
10924瀏覽量
357608 -
字庫(kù)
+關(guān)注
關(guān)注
1文章
15瀏覽量
13304
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Flash語音芯片相比OTP語音芯片的優(yōu)勢(shì)
ST7789V2單芯片控制器/驅(qū)動(dòng)器英文手冊(cè)
TDC芯片數(shù)據(jù)手冊(cè)及官方參考例程
STM32CUBEMX(10)--Flash讀寫
STM32主控芯片+8M晶振+32.768KHz晶振的搭配選型參考方案
![<b class='flag-5'>STM32</b>主控<b class='flag-5'>芯片</b>+8M晶振+32.768KHz晶振的搭配<b class='flag-5'>選型</b>參考方案](https://file.elecfans.com/web2/M00/7D/C2/pYYBAGN92XSAIJ_mAACf9RjpktA221.png)
江波龍自研芯片進(jìn)展,2D NAND Flash/主控芯片”以小帶大”
![江波龍自研<b class='flag-5'>芯片</b>進(jìn)展,2D NAND <b class='flag-5'>Flash</b>/主控<b class='flag-5'>芯片</b>”以小帶大”](https://file1.elecfans.com/web2/M00/F1/ED/wKgaomZ0BK-AOFaaAAfAXY6mOsI550.png)
STM32官方手冊(cè)的使用方法舉例
![<b class='flag-5'>STM32</b><b class='flag-5'>官方</b><b class='flag-5'>手冊(cè)</b>的使用方法舉例](https://file1.elecfans.com/web2/M00/D9/19/wKgZomYpyDmACC1pAAAwMp7OSdc394.png)
STM32是如何從flash讀取指令并執(zhí)行的?
請(qǐng)問STM32小容量的芯片能應(yīng)用GUI嗎?
Flash存儲(chǔ)芯片:NOR Flash、NAND Flash、UFS和eMMC的比較與解析
![<b class='flag-5'>Flash</b>存儲(chǔ)<b class='flag-5'>芯片</b>:NOR <b class='flag-5'>Flash</b>、NAND <b class='flag-5'>Flash</b>、UFS和eMMC的比較與解析](https://file1.elecfans.com//web2/M00/C7/B7/wKgaomYM1O-ACJsgAByL1H0Zhvo099.jpg)
評(píng)論