基于RT-Thread快速上手SD NAND 虛擬文件系統(tǒng)
2025-03-28 14:09:59閱讀量:3214
SD NAND 也稱之為貼片式TF卡,貼片式SD卡,采用標(biāo)準(zhǔn)的SDIO接口,兼容SPI接口。下圖所示為CS 新一代CS SD NAND NP1GCR01-AOW 大小為128M,對比128M的SD卡,可以看到貼片SD卡尺寸更小,不要SD卡座,占用更小的PCB面積;也可以節(jié)省PCB板層數(shù),2層板即可使用。而且兼容可替代普通TF卡/SD卡,硬件電路軟件程序通用。本案例基于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng),更是不需要編寫任何復(fù)雜的驅(qū)動代碼就可以SD NAND讀寫操作。
(文末提供,STM32驅(qū)動代碼下載連接,需要可以自行下載)
將SD NAND插入SD卡卡座。首先,新建一個RT-Thread項目工程,這里基于Draco開發(fā)板創(chuàng)建。
完整的RT-thread項目默認(rèn)是開啟虛擬文件系統(tǒng)組件,RT-Thread DFS 組件的主要功能特點有:
為應(yīng)用程序提供統(tǒng)一的 POSIX 文件和目錄操作接口:read、write、poll/select 等。
支持多種類型的文件系統(tǒng),如 FatFS、RomFS、DevFS 等,并提供普通文件、設(shè)備文件、網(wǎng)絡(luò)文件描述符的管理。這里默認(rèn)開啟FatFS.
支持多種類型的存儲設(shè)備,如 SD Card、SPI Flash、Nand Flash 等。
在 RT-Thread 中,我們要訪問存儲設(shè)備中的文件,必須將文件所在的分區(qū)掛載到一個已存在的路徑上,然后通過這個路徑來訪問存儲設(shè)備。在應(yīng)用程序文件夾下可找到mnt.c源程序??梢钥吹綊燧d文件系統(tǒng)的代碼如下所示。
上圖通過自動化初始化代碼實現(xiàn)文件系統(tǒng)掛載。掛載成功dfs_mount函數(shù)返回0.通過調(diào)試串口可以看到打印信息。Mount "/dev/sd0" on "/":0 done,說明SD NAND掛載成功。
讀寫文件測試:文件系統(tǒng)正常工作后,就可以運(yùn)行應(yīng)用示例,在該示例代碼中,首先會使用 open() 函數(shù)創(chuàng)建一個文件 text.txt,并使用 write() 函數(shù)在文件中寫入字符串 “RT-Thread Programmer!\n”,然后關(guān)閉文件。再次使用 open() 函數(shù)打開 text.txt 文件,讀出其中的內(nèi)容并打印出來,最后關(guān)閉該文件。
測試結(jié)果:在調(diào)試中斷輸入msh 命令readwrite_sample,即可運(yùn)行案例??梢钥吹匠晒?chuàng)建了文本,并寫入了數(shù)據(jù)。
STM32驅(qū)動下載鏈接:https://pan.baidu.com/s/1t9Bd3YUNtQmgpyQbmOIMEA?pwd=8051
提取碼:8051

ISO1540DR/隔離式I2C | 2.78 | |
LMR14050SDDAR/DC-DC電源芯片 | 1.42 | |
LMR16030SDDAR/DC-DC電源芯片 | 1.64 | |
TPL0501-100DCNR/數(shù)字電位器 | 3.19 | |
TCA9535PWR/I/O擴(kuò)展器 | 1.58 | |
MC33063ADR/DC-DC電源芯片 | 0.5622 | |
TLV3201AIDBVR/比較器 | 1.3 | |
MP1584EN-LF-Z/DC-DC電源芯片 | 15.27 | |
MP4560DN-LF-Z/DC-DC電源芯片 | 21.21 | |
MP2338GTL-Z/DC-DC電源芯片 | 8.36 |