0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从驱动到应用:RT-Thread环境下的SDIO开发指南

RT-Thread官方账号 ? 2025-06-28 09:02 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目录


硬件介绍


搭建开发环境


配置 SDIO 驱动


挂载文件系统


文件读写测试


演示视频


源码工程


总结

本文主要讲述RT-Thread环境下的SDIO开发指南,基于MCXN947开发板。


1 硬件介绍


本次测评的是SDIO模块。


SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备。


比如SDIO可以访问micro SD卡、SD卡等存储类设备,或蓝牙、WIFI、GPS等无线设备。

这次测试的是使用SDIO接口访问micro SD卡,即所谓的TF卡,TF卡的引脚定义和SD卡会有所不同:

9969a3bc-53bb-11f0-986f-92fbcf53809c.png

FRDM-MCXN947提供对应的驱动文件是bsp_sdhc.c


SDHC是大容量SD卡,也就是SD High Capacity,支持最大32GB大小容量。


SDHC,Secure Digital High Capacity,大容量SD,也就是说,超过2G的SD都叫SDHC,因为早期的SD使用的是FAT16文件系统,并不支持大容量,而SDHC升级为FAT32,才支持2G以上的大容量。


2 搭建开发环境


Keil :v5.32,官方推荐5.36及以上

RT-Thread env-windows-1.5.0


构建工程:

获取 RT-Thread 当前最新的工程 https://github.com/RT-Thread/rt-thread/

通过 env 工具进入 BSP目录:

rt-thread-master\bsp\nxp\mcx\mcxn\frdm-mcxn947

拷贝 rt-thread-master\bsp\nxp\mcx\tools\sdk_dist.py到刚才的BSP目录

执行

scons--dist --target=mdk5

9973540c-53bb-11f0-986f-92fbcf53809c.png

生成的工程在dist目录,进入到dist下的project目录,需要做以下两个修改:

删除 sdk_dist.py,上传服务器或本地备份的时候不需要此文件

修改工程目录的Kconfig,否则menuconfig会找不到Libraries文件夹下的其它Kconfig

99871fdc-53bb-11f0-986f-92fbcf53809c.png

最后在生成的工程下执行

pkgs--update

999a9a94-53bb-11f0-986f-92fbcf53809c.png

到这里,就可以在KEIL愉快的玩耍了。


3 配置 SDIO 驱动


芯片的 SDIO 外设驱动

99a754f0-53bb-11f0-986f-92fbcf53809c.png

RT-Thread 的 SD/MMC 设备驱动

99b34a3a-53bb-11f0-986f-92fbcf53809c.png

这里使用的是 elm-chan fatfs,即fat32;而 DFS 是对各种文件系统的抽象层,用于适配不同的文件系统

99c00798-53bb-11f0-986f-92fbcf53809c.png

配置完成后,保存到新的 .config, 并在env工具下执行:

scons--target=mdk5


4 挂载文件系统


main.c包含头文件,编译新生成的源文件,并下载到我们的开发板。

#include"dfs_fs.h"

如果挂载失败,可以优先进行这两个动作:


检查卡座的引脚是否存在虚焊

TF卡没有被格式化为FAT32文件系统,插入下面第10行代码进行格式化

#ifdefRT_USING_SDIO rt_thread_mdelay(2000); if(dfs_mount("sd","/","elm",0,NULL) ==0) { rt_kprintf("sd mounted to /\n"); } else { rt_kprintf("sd mount to / failed\n"); dfs_mkfs("elm","sd"); }#endif

我这里使用的是闪迪 16GB TF卡,使用读卡器可以看到TF卡已经成功被格式化

99ccc80c-53bb-11f0-986f-92fbcf53809c.png99dbb09c-53bb-11f0-986f-92fbcf53809c.png


5 文件读写测试


回到主干 rt-thread-master\examples 目录,将目录名为 file 的文件夹拷贝到 sdio-project\rt-thread\components\utilities\file


测试准备

99ec0122-53bb-11f0-986f-92fbcf53809c.png

这里参照其它单元测试案例写 Kconfig 文件 和 SConscript 文件

Import('rtconfig')frombuilding import*
cwd =GetCurrentDir()src =Glob('*.c')
CPPPATH=[cwd]
group=DefineGroup('FilesUnitTest', src, depend=['RT_USING_FILE_IO_TEST'], CPPPATH=CPPPATH)
Return('group')

menu"File IO Unit Test"
config RT_USING_FILE_IO_TEST bool"RT-Thread File TestCases" defaultn endmenu

99fa64e2-53bb-11f0-986f-92fbcf53809c.png9a0514e6-53bb-11f0-986f-92fbcf53809c.png9a187554-53bb-11f0-986f-92fbcf53809c.png

配置完成后,保存到新的 .config, 并在env工具下执行:

scons--target=mdk5

在KEIL重新编译,烧录,开始测试


6 测试结果


读写的速度跟卡本身,DMA,文件系统等等因素有关,这里仅表示单个文件的读写测试结果。


通过串口助手发送指令 readwrite 来进行测试,MCU接收到指令后,会写入240字节到目标文件

用法:readwrite + [filename]

9a693eb2-53bb-11f0-986f-92fbcf53809c.png

通过串口助手发送指令 writespeed 来进行测试,MCU接收到指令后,会写入1048576(1M)字节到目标文件,并输出计算出的写入速度,速度为565KB/s

用法:writespeed + [filename]

9a76690c-53bb-11f0-986f-92fbcf53809c.png

通过串口助手发送指令 readspeed 来进行测试,MCU接收到指令后,会去读取目标文件,这里测试是紧跟着上一写测试进行的,测试出速度为1938KB/s

用法:readspeed + [filename]

9a8697d2-53bb-11f0-986f-92fbcf53809c.png


9 总结


在RT-Thread的设备驱动框架下,NXP现成的驱动还是十分完善,可以快速的跳过设备的驱动,进而聚焦应用程序的开发。同时RT-Thread的生态十分强大,此次测试组件也是现成的代码,基本上是“零代码”测评。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动
    +关注

    关注

    12

    文章

    1920

    浏览量

    87012
  • SDIO
    +关注

    关注

    2

    文章

    76

    浏览量

    19980
  • RT-Thread
    +关注

    关注

    32

    文章

    1415

    浏览量

    42063
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RT-Thread记录(一、版本开发环境及配合CubeMX)

    RT-Thread 学习记录的第一篇文章,RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发
    的头像 发表于 06-20 00:28 ?5995次阅读
    <b class='flag-5'>RT-Thread</b>记录(一、版本<b class='flag-5'>开发</b><b class='flag-5'>环境</b>及配合CubeMX)

    RT-Thread设备驱动开发指南基础篇—以先楫bsp的hwtimer设备为例

    RT-Thread设备驱动开发指南》书籍是RT-thread官方出品撰写,系统讲解RT-thread IO设备
    的头像 发表于 02-20 16:01 ?2651次阅读
    <b class='flag-5'>RT-Thread</b>设备<b class='flag-5'>驱动</b><b class='flag-5'>开发指南</b>基础篇—以先楫bsp的hwtimer设备为例

    RT-Thread驱动开发指南进阶篇-动手驱动先楫未适配的外设LCD

    经过上一篇的《《RT-Thread设备驱动开发指南》基础篇--以先楫bsp的hwtimer设备为例》阐述,可以大致了解到RT-thread设备驱动
    的头像 发表于 02-25 11:04 ?4017次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>驱动</b><b class='flag-5'>开发指南</b>进阶篇-动手<b class='flag-5'>驱动</b>先楫未适配的外设LCD

    STM32L475开发指南-RT-Thread例程_V1.1

    STM32L475开发指南-RT-Thread例程_V1.1
    发表于 05-05 09:07

    已结束-【书籍评测活动NO.4】RT-Thread官方撰写,涵盖26种设备驱动开发指南

    本期书籍评测名单如下:大菠萝Alpha 《RT-Thread设备驱动开发指南》学习之UART设备驱动开发学习 郭祥峰《
    发表于 02-22 15:30

    RT-Thread设备驱动开发指南》读书测评

    驱动开发指南》这本书主要分了三个部分,由基础篇,进阶篇,高级篇组成,适用不同层次的开发者,对于不太熟悉或者没有接触过rt-thread系统的读者可以先从基础篇观看,我们
    发表于 03-26 21:04

    RT-Thread编程指南

    RT-Thread编程指南——RT-Thread开发组(2015-03-31)。RT-Thread做为国内有较大影响力的开源实时操作系统,本
    发表于 11-26 16:06 ?0次下载

    RT-Thread Studio驱动SD卡

    总结前言硬件平台:RT-Thread ART-Pi STM32H750XBH6开发板 H750开发开发软件:RT-Thread Studi
    发表于 12-27 19:13 ?20次下载
    <b class='flag-5'>RT-Thread</b> Studio<b class='flag-5'>驱动</b>SD卡

    RT-Thread 编程风格指南

    这是一份 RT-Thread 开发人员的开发指引。RT-Thread 做为一份开源软件,它需要由不同 的人采用合作的方式完成,这份文档是开发
    发表于 01-26 17:04 ?18次下载
    <b class='flag-5'>RT-Thread</b> 编程风格<b class='flag-5'>指南</b>

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文档_RT-Thread 潘多拉 STM32L475 上手指南
    发表于 02-22 18:23 ?10次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>RT-Thread</b> 潘多拉 STM32L475 上手<b class='flag-5'>指南</b>

    LPC55S69在RT-Thread上的SDIO驱动和文件系统

    本篇将介绍如何在LPC55S69_EVK开发板上,使用RT-ThreadSDIO驱动和FATFS文件系统组件实现SD卡上的文件读写。
    的头像 发表于 03-08 14:13 ?1624次阅读
    LPC55S69在<b class='flag-5'>RT-Thread</b>上的<b class='flag-5'>SDIO</b><b class='flag-5'>驱动</b>和文件系统

    送《RT-Thread设备驱动开发指南》,手慢无!

    迫切地希望有一本可以指导他们在RT-Thread开发驱动指南。 为了解决开发者的燃眉之急, 《RT
    的头像 发表于 03-19 23:00 ?1754次阅读

    电子工程专辑放福利啦!免费领取500本《RT-Thread设备驱动开发指南

    6月面包板社区新用户注册 免费领取物联学习大礼包! 大礼包包含: 1、《RT-Thread设备驱动开发指南》 2、RT-Thread线上教学课程16讲 3、10GB物联资料大全下载 扫
    的头像 发表于 06-28 19:25 ?967次阅读
    电子工程专辑放福利啦!免费领取500本《<b class='flag-5'>RT-Thread</b>设备<b class='flag-5'>驱动</b><b class='flag-5'>开发指南</b>》

    RT-Thread设备驱动开发指南》基础篇--以先楫bsp的hwtimer设备为例

    一、概述(一)RT-Thread设备驱动RT-Thread设备驱动开发指南》书籍是RT-thread
    的头像 发表于 02-24 08:16 ?2753次阅读
    《<b class='flag-5'>RT-Thread</b>设备<b class='flag-5'>驱动</b><b class='flag-5'>开发指南</b>》基础篇--以先楫bsp的hwtimer设备为例

    【好书推荐】RT-Thread设备驱动开发指南

    强烈,他们迫切地希望有一本可以指导他们在RT-Thread开发驱动指南。为了解决开发者的燃眉之急,《
    的头像 发表于 08-01 08:35 ?1359次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>设备<b class='flag-5'>驱动</b><b class='flag-5'>开发指南</b>