此时回到ENV主界面,进入RT-Thread Components->Device Drivers->Using Serial Flash Universal Driver,此时才可以看到SFUD选项出现(如果没有使能SPI则无法看到),使能后保持默认。 FAL组件FAL SFUD测试用例 为了验证W25Q128及软件模拟SPI在SFUD框架上是否能够成功运行,在. t-threadsplpc55sxxlpc55s69_nxp_evkoardports...
staticstruct rt_mutex lock;staticchar log_buf[256];staticvoidspi_lock(constsfud_spi*spi){sfud_flash*sfud_dev=(sfud_flash*)(spi->user_data);struct spi_flash_device*rtt_dev=(struct spi_flash_device*)(sfud_dev->user_data);RT_ASSERT(spi);RT_ASSERT(sfud_dev);RT_ASSERT(rtt_dev);rt_mut...
同时需要开启SFUD框架支持,打开ENV工具,由于SFUD的使用需要指定一个spi设备,这里我选择使用最近移植好的软件spi,路径Hardware Drivers Config->On-chip Peripheral Drivers-> Enable soft SPI BUS->Enable soft SPI1 BUS (softwaresimulation),这里的测试开发板是恩智浦LPC55S69-EVK,并且这款BSP的软件模拟SPI由我本人...
FAL的git地址 https://github.com/RT-Thread-packages/fal 通过ENV配置FAL对接SFUD时的注意事项 源码内增加部分代码:向FAL_FLASH_DEV_TABLE和FAL_PART_TABLE添加存储设备的信息,并调用fal_init()。 如何在ENV内配置FAL?配置很简单。 因为我们要使用FAL对接SFUD(参考本博文的第一幅代码层次框架图), 所以要先配置...
FAL SFUD 移植 为了提供示例,我们选用W25Q128 spi flash作为测试模块,并且使用SFUD框架对spi flash设备进行管理和驱动。 由于目前RT-Thread的SFUD已经对W25Q128完成支持,根据官方的使用手册,我们仅需编写fal_cfg.h文件完成对FAL_FLASH_DEV_TABLE及FAL_PART_TABLE的定义即可。文件存放路径:.\rt-thread\bsp\lpc55sxx...
同时我们需要开启SFUD框架支持,打开ENV工具,由于SFUD的使用需要指定一个spi设备,这里我选择使用最近移植...
#ifdef RT_USING_SFUD #include <spi_flash_sfud.h> #endif #ifndef FAL_USING_NOR_FLASH_DEV_NAME #define FAL_USING_NOR_FLASH_DEV_NAME "norflash0" #endif static int init(void); static int read(long offset, uint8_t *buf, size_t size); ...
1.3 FAL SFUD 移植 为了提供示例,我们选用W25Q128 spi flash作为测试模块,并且使用SFUD框架对spi flash设备进行管理和驱动。 由于目前RT-Thread的SFUD已经对W25Q128完成支持,根据官方的使用手册,我们仅需编写fal_cfg.h文件完成对FAL_FLASH_DEV_TABLE及FAL_PART_TABLE的定义即可。文件存放路径:.\rt-thread\bsp\lpc55...
定义片内 flash 设备可以参考fal_flash_sfud_port.c。 定义片外 spi flash 设备可以参考fal_flash_stm32f2_port.c。 定义具体的 Flash 设备对象,用户需要根据自己的 Flash 情况分别实现init、read、write、erase这些操作函数: static int init(void):可选的初始化操作。
启用FAL 针对 SFUD 的移植文件(默认关闭); 应输入调用 rt_sfud_flash_probe 函数时传入的 FLASH 设备名称(也可以通过 list_device 命令查看 Block Device 的名字获取)。该名称与分区表中的 Flash 名称对应,只有正确设置设备名字,才能完成对 FLASH 的读写操作。 然后让 RT-Thread 的包管理器自动更新,或者使用 ...