⑴ ST福利:如何使用STM32F103C8T6的後64KB flash
ST福利揭秘:利用STM32F103C8T6的隱藏快閃記憶體資源
在STM32F103C8T6和CBT6型號中,雖然它們都採用LQFP48封裝,但主要區別在於快閃記憶體容量,C8T6為64KB,而CBT6則擁有更大的128KB。實際上,C8T6與CBT6使用的是同一die封裝,ST公司巧妙地提供了額外的64KB快閃記憶體空間供用戶利用。
通過簡單的操作,我們可以充分挖掘C8T6的這一潛能。首先,確保使用SWD介面連接DAPLink模擬器,僅需GND、SWCLK、SWDIO和3V3四根線。接著,從github下載預先配置好的openocd環境和腳本,無需額外安裝,雙擊即可執行。
操作流程包括:檢測晶元ID,通過flash_write.bat將預先准備的128KB鏡像寫入,驗證寫入成功,然後使用flash_mp.bat導出數據並進行hash校驗。這些腳本分別執行掛載、快閃記憶體操作、擦除以及設置讀寫許可權。
重要的是,openocd允許用戶通過自定義配置來指定快閃記憶體大小,即使IDE如Keil或IAR未識別C8T6的全部快閃記憶體容量。這得益於openocd的底層靈活性,通過調整flash bank配置,我們可以利用C8T6的額外空間。
總結,盡管CBT6是更直接的選擇,但對openocd和DAPLink有深入理解的開發者,可以通過這種方式充分利用STM32F103C8T6的後64KB快閃記憶體,擴展應用的存儲能力。
⑵ stm32的嵌入式快閃記憶體:大容量產品主存儲塊最大為64k*64位,每個存儲塊劃分為256個2k 位元組的頁,這兩句話
按照存儲單元的元[位]來講,這兩種說法是相等的:
64K * 64bits = 64 * 4 *2K * 8bits = 256個2K位元組;
也就是說,總的存儲容量還是沒變的。
我的理解是這樣的:
前者側重頁外,後者側重頁內,兩種說法是和存儲器的組織形式有關的:
主存儲塊的最大數目 = 64K * 64位,而每個單獨的頁(也就是存儲晶元)的構成形式是2K*8位,那麼就需要進行擴展:
首先應進行位擴展,即2K * 8位擴展為2K * 64位,則需要8個存儲晶元,3根片選線,11根地址線;
然後進行字擴展,即2K 擴展為 64K,此時需要32個位擴展後的存儲晶元,5根地址線;
如此共需要存儲晶元數量為:32 * 8 = 256個,也就是存儲塊內共需要256個頁,19根地址線。