AliOS Things外接W25Q128,使用ulog调用spiffs-阿里云开发者社区

开发者社区> IoT> 正文

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

简介: AliOS Things在board使用SPI外接W25Q128,将spiffs文件系统挂接到W25Q128下(系统默认是ulong调用spiffs系统)

1.参考spiffs中的vfs的调用,实现类flash实现spi调用W25QXX
image
至于return hal_spiflash_read((hal_partition_t)SPIFFS_CFG_PARTITION, addr, dst, size);的实现就是SPI W25QXX的细节了(走了好多弯路,这个感觉就是硬件实现了...)
2.flash分配中增加image
2.1把HAL_PARTITION_SPIFFS的参数值定义,主要是HAL_FLASH_SPI这个不同,其他的好理解
3.第三步就是修改结构体
image
3.1增加一个附加参数变量
4.在初始化spi时,传递spi设备指针
image
5.当然得根据需要修改spiffs中的几个宏定义(其实我觉得真心不必要,可以在spiffs_vfs.c中看到,其实就是初始化的时候调用了,完全可以声明成变量或者修改hal_logic_partition_t结构体让其容纳更多flash参数
5.1这个是告诉spiffs使用flash总大小
image
5.2这个是一次擦除大小
image
5.3这个是写数据时的大小(因为spi限制每次写1页256Byte)
image
5.4这个是块大小,我的理解为就是spiffs一次性操作的大小,理解为W25QXX擦除1个扇区4k或者多个扇区32k或者多个扇区64k的东西
image
6.我遇到的最多的问题就是spi操作W25QXXX的函数没写好,导致spiffs初始化老是报错,大家多排查
7.然后就是在终端输入aos make menuconfig找到ulog打开输入到文件
8.重新编译就能看到效果了...
9.ulog中还发现个问题就是不能打开Async,否则调试串口输出的LOGD和LOGI就有问题咯

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
IoT
使用钉钉扫一扫加入圈子
+ 订阅

物联网软硬件开发者一站式基地

其他文章