理解并應(yīng)用SPI Flash驅(qū)動庫是嵌入式開發(fā)中的重要技能。SFUD庫通過模塊化設(shè)計,將復(fù)雜的SPI Flash操作簡化為標(biāo)準(zhǔn)接口調(diào)用。本文將通過理論與實踐結(jié)合的方式,詳細講解SFUD庫的使用步驟,并提供可運行的示例代碼,幫助開發(fā)者快速上手。
SFUD(Serial Flash Universal Driver)是開源的串行SPI Flash通用驅(qū)動庫。
旨在解決不同品牌及規(guī)格串行Flash的命令差異問題,通過統(tǒng)一接口實現(xiàn)跨硬件兼容,從而降低嵌入式系統(tǒng)的開發(fā)復(fù)雜度,提高軟件的可重用性和可擴展性。
LuatOS為開發(fā)者提供了便捷的SFUD核心庫API接口:
支持通過SFUD原生接口直接操作Flash存儲單元,也支持將Flash設(shè)備掛載為SFUD LFS文件系統(tǒng)實現(xiàn)標(biāo)準(zhǔn)化文件管理,簡化嵌入式存儲管理并提升開發(fā)效率;
支持設(shè)置文件系統(tǒng)掛載的偏移量和大小,提供更靈活的配置選項,適用于物聯(lián)網(wǎng)智能設(shè)備、工業(yè)控制等不同應(yīng)用場景的需求。
本文將以Air780EHM核心板為例,分享的SFUD應(yīng)用示例;此示例同樣適用于Air780EHV、Air780EGH系列。
一、主要準(zhǔn)備工作
Air780EHM核心板套件
SPI Flash模塊
注:需要選用支持SFUD標(biāo)準(zhǔn)的SPI Flash模塊,本文使用W25Q32演示。
Win10及其以上PC電腦
Air780EHM核心板通過Type-C USB數(shù)據(jù)線連接電腦;支持USB口供電,使用時請將USB旁邊的開關(guān)撥到ON一端。
Air780EHM核心板通過杜邦線和SPI Flash模塊連接,對應(yīng)管腳接線方式如下圖表所示:
二、最新源碼下載
最新demo已上傳源碼倉庫:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EHM_Air780EHV_Air780EGH/demo/sfud
sfud_test.lua代碼如下圖示,完整demo詳見源碼倉庫。
相關(guān)注意事項:
在sfud_test.lua中,通過test_sfud_raw和test_sfud_mountl兩個變量來控制,是通過SFUD接口去讀寫Flash,還是掛載為SFUD LFS文件系統(tǒng),通過文件系統(tǒng)相關(guān)接口去操作SFUD LFS文件系統(tǒng)中的文件。
也可以同時使用這兩種方式,不過要注意同時使用SFUD直接寫入時的地址和掛載SFUD LFS時的偏移量需要設(shè)計好(注意偏移量需要是64k的倍數(shù)),避免發(fā)生沖突。
三、示例運行結(jié)果
Air780EHM核心板通過LuaTools燒錄內(nèi)核固件和demo腳本代碼。燒錄成功后開機運行,通過LuaTools日志查看運行結(jié)果。
3.1 通過SFUD原生接口直接操作Flash:
寫入字符串:luatos-sfud1234567890123456789012345678901234567890
然后讀取前4字節(jié)數(shù)據(jù)。
結(jié)果如下圖所示:
3.2 將Flash設(shè)備掛載為SFUD LFS文件系統(tǒng):
我們將Flash設(shè)備成功掛載為SFUD LFS文件系統(tǒng)后,通過標(biāo)準(zhǔn)化文件管理接口對文件系統(tǒng)進行了全流程驗證。
日志輸出顯示,文件系統(tǒng)掛載過程順利完成,且測試文件讀寫、內(nèi)容追加、文件刪除等核心操作均能穩(wěn)定執(zhí)行,整個交互過程無異常報錯信息,充分驗證了SFUD LFS文件系統(tǒng)在嵌入式存儲場景下的功能完整性。
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
FlaSh
+關(guān)注
關(guān)注
10文章
1701瀏覽量
153887 -
SPI
+關(guān)注
關(guān)注
17文章
1835瀏覽量
98645 -
SFUD
+關(guān)注
關(guān)注
0文章
7瀏覽量
1220
發(fā)布評論請先 登錄
通用bootloader無法使用45db161flash怎么解決?
RT-Thread 5.1.0版本中調(diào)用rt_sfud_flash_probe()函數(shù)報錯的原因?
SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別
SFUD驅(qū)動庫實戰(zhàn)手冊:串行SPI Flash開發(fā)全流程解析

基于LuatOS核心庫的實時操作系統(tǒng)開發(fā):從理論到實踐~

UC3854 功率因數(shù)校正設(shè)計全攻略:從理論到實戰(zhàn)

Air201模組教程:SPI通信與外部Flash的連接之道!

LuatOS入門課|Air201模組與SPI Flash的交互藝術(shù)

恩智浦FRDM-MCXA153 RT-Thread實踐指南 實現(xiàn)和優(yōu)化RT-Thread的SPI驅(qū)動

從理論到實踐:RFID技術(shù)在消防應(yīng)急的應(yīng)用潛力

評論