上位机图像处理和嵌入式模块部署(f407 mcu中fatfs中间件使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

前面我们已经实现了spi norflash的驱动,理论上这已经可以实现数据的持久化保存了。为什么还需要一个文件系统呢?主要原因还是不方便。如果没有文件系统的话,我们访问文件都需要知道确切文件的sector地址和大小,这样很麻烦。此外,写入、读取文件的时候,还要提前规划好文件的大小,防止不同的文件之间相互覆盖。而有了fatfs之后,使用上就不需要这么小心翼翼了。

另外,今天我们还提出了一个中间件的概念。什么叫中间件呢,其实就是说这部分代码本身处于系统中间的位置。对上,它提供调用接口;对下,它需要具体硬件的适配。所以,只有这样的代码才称之为中间件。

1、除了fatfs之外,还有哪些中间件

广义的中间件还是蛮多的。比如说图形界面的lvgl,网络协议栈的lwip,实时操作系统rtos严格意义上也可以看成是中间件,毕竟它下面对着cpu,上面提供os接口。

2、fatfs需要适配哪些接口

目前来说,fatfs需要适配这么几个接口函数,

复制代码
disk_status
disk_initialize
disk_read
disk_write
disk_ioctl
get_fattime

其中disk_status一般就是判断一下硬件的状态。disk_initialize代表硬件初始化,norflash的初始化话就在这里。disk_read代表读取数据。disk_write代表写入数据。disk_ioctl主要就是回复一些硬件属性,比如sector多大,整个硬件容量多大等等。get_fattime获取系统时间。

这几个接口都是在diskio.c文件里面,还是很好辨认的。

3、fatfs支持哪些硬件

理论上fatfs支持任何的硬件,只要按照它的要求做好底层适配就好了。不过目前为止,用的比较多的还是norflash和tf卡。norflash一般是固化在开发板的,往里面存文件不太方便。这个时候如果有一个可插拔的tf卡,直接通过fatfs,把文件从tf卡copy到norflash,那就很方便了。

4、fatfs给上层提供的接口

fatfs对外提供的接口其实和大多数文件系统都差不多,一般就是这些接口,大家不用全部掌握,用的什么学什么就可以了,

复制代码
f_mount
f_mkfs
f_open
f_write
f_read
f_close

5、配置fatfs

fatfs自身也是可以配置的,比如我们希望对fatfs进行功能裁剪的话,直接配置ffconf.h文件就可以了。

6、测试方案

fatfs的测试还是比较容易的。首先对norflash进行fatfs加载,如果发现不能加载,那么先进行格式化操作,格式化完了再加载。接着就是写入数据、读取数据。判断一下写入的数据和读取的数据是不是吻合。最后就是卸载fatfs了。

7、调试

本身作者给出了完整的项目代码,和之前norflash相比较,其实就多了fatfs三个文件,

编译、烧入后,我们发现fatfs执行是失败的。进一步调试,发现在disk_status状态确认的时候,返回值是错误的。单步后发现,还是flashid判断的问题,重新调整修改一下代码,

复制代码
	  if(SPI_FLASH_ReadID() == 0x684016)
      {
        status &= ~STA_NOINIT;
      }
      else
      {
        status = STA_NOINIT;;
      }

至此,我们可以看到在上位机串口打印上,一切ok正常了,

相关推荐
TESmart碲视39 分钟前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
small_wh1te_coder1 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
花落已飘2 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件
牵牛老人4 小时前
Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
stm32·单片机·qt
宇钶宇夕5 小时前
针对工业触摸屏维修的系统指南和资源获取途径
单片机·嵌入式硬件·自动化
和风化雨6 小时前
stm32的三种开发方式
stm32·单片机·嵌入式硬件
kanhao1006 小时前
三态逻辑详解:单片机GPIO、计算机总线系统举例
单片机·嵌入式硬件
小眼睛FPGA8 小时前
【RK3568+PG2L50H开发板实验例程】FPGA部分/紫光同创 IP core 的使用及添加
科技·嵌入式硬件·ai·fpga开发·gpu算力
竹照煜_ysn9 小时前
STM32
stm32·单片机·嵌入式硬件
蓬荜生灰10 小时前
永磁无刷电机旋转原理
单片机·嵌入式硬件