1.參考spiffs中的vfs的調用,實作類flash實作spi調用W25QXX
如

至于return hal_spiflash_read((hal_partition_t)SPIFFS_CFG_PARTITION, addr, dst, size);的實作就是SPI W25QXX的細節了(走了好多彎路,這個感覺就是硬體實作了...)
2.flash配置設定中增加
2.1把HAL_PARTITION_SPIFFS的參數值定義,主要是HAL_FLASH_SPI這個不同,其他的好了解
3.第三步就是修改結構體
3.1增加一個附加參數變量
4.在初始化spi時,傳遞spi裝置指針
5.當然得根據需要修改spiffs中的幾個宏定義(其實我覺得真心不必要,可以在spiffs_vfs.c中看到,其實就是初始化的時候調用了,完全可以聲明成變量或者修改hal_logic_partition_t結構體讓其容納更多flash參數
5.1這個是告訴spiffs使用flash總大小
5.2這個是一次擦除大小
5.3這個是寫資料時的大小(因為spi限制每次寫1頁256Byte)
5.4這個是塊大小,我的了解為就是spiffs一次性操作的大小,了解為W25QXX擦除1個扇區4k或者多個扇區32k或者多個扇區64k的東西
6.我遇到的最多的問題就是spi操作W25QXXX的函數沒寫好,導緻spiffs初始化老是報錯,大家多排查
7.然後就是在終端輸入aos make menuconfig找到ulog打開輸入到檔案
8.重新編譯就能看到效果了...
9.ulog中還發現個問題就是不能打開Async,否則調試序列槽輸出的LOGD和LOGI就有問題咯