寫在前面
在實際應(yīng)用中,通常會使用Serial Nor flash作為RT系列MCU的代碼儲存設(shè)備,如QSPI,HyperFlash等,這些設(shè)備都支持XIP特性,而這些Flash除了儲存代碼外,剩下的空間可以用于存儲數(shù)據(jù),比如設(shè)備參數(shù),log信息,并能用文件系統(tǒng)來管理,所以這次小編就分享一個可運行在QSPI的Littlefs的例程,可用于管理QSPI的數(shù)據(jù)區(qū)域。
Fig1
測試環(huán)境介紹
硬件平臺:MIMXRT1060-EVKB;
Fig2 MIMXRT1060-EVKB
IDE:MCUXpresso;
移植步驟
我們直接以SDK中的littlefs_shell工程作為模板來避免重復(fù)造輪子,由于littlefs_shell工程是鏈接到RAM中,所以我們需要對它進行改造。
添加Flash項
Fig3 添加Flash
添加FDCB
littlefs_shell工程默認(rèn)是鏈接到RAM中,所以需要手動添加FDCB,具體如下所示。
在工程中添加xip(來自于SDK library)
Fig4
在Settings->Preprocessor中,添加XIP_EXTERNAL_FLASH=1和XIP_BOOT_HEADER_ENABLE=1
Fig5
函數(shù)重定位
Fig6為littlefs_shell工程的代碼分層圖,其中結(jié)構(gòu)體lfs_config包含塊設(shè)備的各類操作接口函數(shù)及各種參數(shù)配置,而接口函數(shù)需要調(diào)用FlexSPI驅(qū)動函數(shù)才能真正實現(xiàn)QSPI的讀寫,刪除等操作。
Fig6 代碼分層
由于代碼本身就是在QSPI中運行,需要修改linker file把塊設(shè)備的各類操作接口函數(shù)和FlexSPI驅(qū)動函數(shù)重定位到RAM中運行。
Fig7
修改Flexspi clock
在littlefs_shell工程中,F(xiàn)lex_SPI時鐘會被重新設(shè)置,這部分也需要進行重定位處理的,不然會觸發(fā)hardfalut,當(dāng)然,你可以在BOARD_InitBootClocks()中,就提前設(shè)置好想要的FlexSPI時鐘頻率,避免二次設(shè)置。
CLOCK_InitUsb1Pll(&g_ccmConfigUsbPll); CLOCK_InitUsb1Pfd(kCLOCK_Pfd0,24);/*SetPLL3PFD0clock360MHZ.*/ CLOCK_SetMux(kCLOCK_FlexspiMux,0x3);/*ChoosePLL3PFD0clockasflexspisourceclock.*/ CLOCK_SetDiv(kCLOCK_FlexspiDiv,2);/*flexspiclock120M.*/
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17978瀏覽量
366682 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70715 -
Shell
+關(guān)注
關(guān)注
1文章
372瀏覽量
24209 -
QSPI
+關(guān)注
關(guān)注
0文章
45瀏覽量
12718
原文標(biāo)題:XIP模式的littlefs_shell代碼實現(xiàn)
文章出處:【微信號:MCU頻道,微信公眾號:MCU頻道】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
shell是什么?shell實現(xiàn)原理分析基于MM32 MCU的shell腳本源碼
Windows CE 5.0 mult-xip bin模式實現(xiàn)
講解shell實現(xiàn)原理
littlefs文件系統(tǒng)掉電保護是如何實現(xiàn)的
如何將SPIFFS代碼移植到LittleFS?
請問N101 flashxip模式運行的是兩線XIP?
基于Vivado/SDK 2018.3的XIP參考設(shè)計
STM32CubeIDE XiP 和 BootROM介紹, XiP外部內(nèi)存QSPI FLASH執(zhí)行用戶代碼

用于MCU上的代碼下載與執(zhí)行的并發(fā)并行XIP閃存和SRAM設(shè)計

基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅(qū)動實現(xiàn)
剖析Linux shell 函數(shù)實現(xiàn)

基于OpenHarmony3.1的LittleFS文件系統(tǒng)hdf驅(qū)動實現(xiàn)

評論