天天看點

AliOS Things外接W25Q128,使用ulog調用spiffs

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

AliOS Things外接W25Q128,使用ulog調用spiffs

至于return hal_spiflash_read((hal_partition_t)SPIFFS_CFG_PARTITION, addr, dst, size);的實作就是SPI W25QXX的細節了(走了好多彎路,這個感覺就是硬體實作了...)

2.flash配置設定中增加

AliOS Things外接W25Q128,使用ulog調用spiffs

2.1把HAL_PARTITION_SPIFFS的參數值定義,主要是HAL_FLASH_SPI這個不同,其他的好了解

3.第三步就是修改結構體

AliOS Things外接W25Q128,使用ulog調用spiffs

3.1增加一個附加參數變量

4.在初始化spi時,傳遞spi裝置指針

AliOS Things外接W25Q128,使用ulog調用spiffs

5.當然得根據需要修改spiffs中的幾個宏定義(其實我覺得真心不必要,可以在spiffs_vfs.c中看到,其實就是初始化的時候調用了,完全可以聲明成變量或者修改hal_logic_partition_t結構體讓其容納更多flash參數

5.1這個是告訴spiffs使用flash總大小

AliOS Things外接W25Q128,使用ulog調用spiffs

5.2這個是一次擦除大小

AliOS Things外接W25Q128,使用ulog調用spiffs

5.3這個是寫資料時的大小(因為spi限制每次寫1頁256Byte)

AliOS Things外接W25Q128,使用ulog調用spiffs

5.4這個是塊大小,我的了解為就是spiffs一次性操作的大小,了解為W25QXX擦除1個扇區4k或者多個扇區32k或者多個扇區64k的東西

AliOS Things外接W25Q128,使用ulog調用spiffs

6.我遇到的最多的問題就是spi操作W25QXXX的函數沒寫好,導緻spiffs初始化老是報錯,大家多排查

7.然後就是在終端輸入aos make menuconfig找到ulog打開輸入到檔案

8.重新編譯就能看到效果了...

9.ulog中還發現個問題就是不能打開Async,否則調試序列槽輸出的LOGD和LOGI就有問題咯

繼續閱讀