物联网的通用控制器模块。FatFs测试



在本文中,我将演示移植到K66BLEZ1模块的FatFs库的测试项目。开源库FatFs是微控制器程序员所熟知的,并实现了对SD和MMC卡上FAT32文件系统的支持。记录器,可编程逻辑控制器,录音机,跟踪器等的开发中必不可少的东西。但是有时它可能成为实时系统的瓶颈。


本文已开始介绍K66BLEZ1模块:
物联网通用控制器模块。呼吸寿命

本文提到了K66系列微控制器的软件套件(SDK)。
特别是,在SDK中,您可以找到测试FatF的示例。该示例非常简单,因此我对其进行了修改以提高实用性。

输出调试信息的组织。



为了使SDK中的原始示例能够在K66BLEZ1板上工作,您无需对其进行任何更改。但是有一件事,但是!将没有输出到调试终端。由于模块板上没有用于通过RS232接口进行调试输出的特殊连接器。
调试模块通过一个密集的SWD接口和利用技术的设计工作实时终端(RTT)中描述的这篇文章中,。但是,这种方法可能不适合与J-Link不兼容的调试适配器的所有者。因此,我没有在应用程序中更正调试输出代码,而是将其重定向到UART4。再次在这里,为了避免制作原型,我利用了J-Link。来自内置UART <->虚拟COM端口转换器的RX和TX信号输出到SWD连接器上的此适配器。我用过因此,第一次调整出现在模块板上。在下图中以红色显示。

(点击查看大)


即在K66BLEZ1板上,将调试连接器的红色信号连接与来自微控制器的必要信号焊接在一起。

(点击放大)


下图是从J-Link连接器到K66BLEZ1板的调试连接器的适配器示意图,以了解信号来自适配器的位置。

(点击放大)


项目组织。


我在用于ARM 7.40.7IAR嵌入式工作台中
完成了两个项目,其中一个完全重复了使用制造商SDK中的FatF的示例
为了更方便地复制项目,进行研究和重构,我从SDK中提取了与该项目关联的所有文件,并将它们转移到文件较少的另一个更简单的目录结构中。

然后,我在board.h文件中更改了调试UART的设置
对于在文件中最大的演出费sdcard_FatFs.c更换功能BOARD_BootClockRUNBOARD_BootClockHSRUN,即而是将处理器频率设置为180 MHz120兆赫
该项目位于此处,

第二个项目基于第一个项目,但有许多重要的补充。
该项目使您可以测试打开,创建,写入,读取,关闭和删除文件的速度。
项目在这里

测试说明


我们将项目编译为IAR,然后通过JTAG / SWD适配器将其编程到板上的MK66FN2M0VLQ18微控制器中。
程序启动后,终端中将显示以下类型的菜单:(

单击放大)该


菜单可运行三个测试之一,并具有更改多个测试参数的能力。

测试编号1依次写入具有指定大小的指定数量的文件。记录通过rand函数获得的随机数据。每条记录都伴随着文件的打开,记录和关闭时间的度量。
然后依次读取文件并检查其内容,并测量打开,读取和关闭文件的时间。
如果设置了擦除标志,则将删除文件,并测量删除文件的时间。
对于3组操作:文件创建,反向读取和删除,统计信息进行了汇总。
这是用于测试写入,读取,删除5个大小为8192泰铢的文件的窗口的外观。

(单击放大)


文件数量及其大小可以任意更改。如果值太大,程序将显示有关内存不足的消息。

测试编号2创建,写入,读取,删除给定大小的文件,并重复此次数。
文件名每次都会更改。这里的条目数可能非常大。该测试使您可以测试卡是否完全磨损,同时可以看到写入和读取速度下降的图像。

测试编号3创建一个文件并将其写入指定数量(文件Cnt值)乘以指定大小的块。然后对另一个文件重复该过程。此方案使您可以测试具有音量变化的音频录制设备的典型连续录制模式。

结果


在K66BLEZ1板上,FatFs库显示了非常好的结果。

为了进行测试,我们使用了8GB microSD卡GOOD RAM SDU8GDMGR(10级)

,文件平均写入速度为32,768字节为5.1 Mb / s
,文件最大写入速度为32768字节为11.8 Mb / s

,文件平均读取速度为32768字节为15.9 Mb / s。s文件的
最大读取速度为32,768字节,为16.2 Mb / s

,是通过测试编号1对100个文件进行的。

已经观察到文件大小与簇大小的多样性对读写速度有很大影响。
同样,对于大量文件,文件打开时间开始影响整体速度,当文件数量从100变为100时,打开速度增加了两个数量级。

这些测试的实用价值在于,它们使您能够找到最佳的卡格式化选项,最佳的文件大小,以及优化记录文件的块大小,以实现最佳性能。
相同的测试将有助于查看和评估SD和MMC卡的零星记录延迟特性,以及其内部机制的作用,以均衡存储扇区的磨损。

这里存储所有与本项目相关的材料 - https://github.com/Indemsys/K66BLEZ1

Source: https://habr.com/ru/post/zh-CN392955/


All Articles