Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread学习营
【内核和外设学习营】十里 FatFS文件系统上挂载SD卡实验
发布于 2018-09-07 18:21:42 浏览:3456
订阅该版
* 本帖最后由 hyz_rtt 于 2018-9-7 18:23 编辑 * 1、实验要求: 要求硬件上:(1)有SD卡接口, 并插入SD卡 ;(2)有一路串口用来做 msh shell 终端。 软件上:BSP 中已经实现如下驱动:串口驱动,SD卡驱动。 2、准备工作: 硬件:野火霸天虎stm32407开发板 软件:rtt3.1.0bsp下stm32f4xx-HAL、rtt3.1.0 bsp下stm32f429-apollo以及env0.7.1 3、示例代码 ```#include
#include
void sd_test(void) { rt_device_t dev; while(1) { dev = rt_device_find("sd0"); if(dev != RT_NULL) { if(dfs_mount("sd0", "/", "elm", 0, 0) == 0) { rt_kprintf("sd card mount to / success!
"); } else { rt_kprintf("sd card mount to / failed!
"); } break; } rt_thread_delay(50); } }```然后在用户主函数里调用sd_test()函数。 4、实验步骤 (1)env配置芯片型号stm32f407ZG、外部时钟源HSE25M  (2)进入RT-Thread Components选项  1)数字1处进入finsh shell功能选中,其他无需改动 2)数字2处配置文件系统  3)数字3处Device Drivers配置底层框架(PIN可不选)  4)数字4处配置libc,和c语言相关的,使用文件系统尽量选择,不然会出一些错误  (3)配置好后,scons --target=mdk5重新生成工程 (4)关于SD卡驱动的事情 stm32f4xx-HAL里没有SD卡的底层驱动,这里我是从stm32f429-apollo的底层驱动drivers文件夹里拷贝的  鉴于驱动里调用了SD相关的.c文件里的函数,所以要更换如下文件 使用stm32f429-apollo库里的: stm32f4xx_hal_sd.c stm32f4xx_hal_sd.h stm32f4xx_ll_sdmmc.c stm32f4xx_ll_sdmmc.h 替换stm32f4xx-HAL 中的下面文件: stm32f4xx_hal_sd.c stm32f4xx_hal_sd.h stm32f4xx_ll_sdmmc.c stm32f4xx_ll_sdmmc.h (5)对于不同的开发板,我们需要对sd驱动文件drv_sdio_sd.c里void HAL_SD_MspInit(SD_HandleTypeDef *hsd) 函数里的SD卡初始化根据自己的开发板进行修改,确保硬件配置无误。 (6)有时候不选中相关的驱动,env会自动屏蔽相关的头文件,造成编译错误,一些定义在对应库文件里的变量报 出无法找到的错误,可在如下图中文件对相关宏定义进行操作。  (7)加入示例代码,在用户主函数里调用进行编译,无错误,无警告,烧录下载。 5、实验结果 (1)烧录后,串口打印如下  然后利用mkfs命令创建文件系统,发送命令。 (2)示例代码里是进行sd卡挂载的程序,确保此程序运行前提下,在(1)步骤完成后,复位按钮复位开发板, 串口助手输出如下:  成功挂载。 6、遇到的问题 (1)SD卡驱动文件没有; (2)解决驱动问题后,加入驱动文件,编译后无错,但烧录后串口无任何显示; (3)挂载失败 7、解决方法 (1)从stm32f429-apollo拷贝驱动并修改硬件配置,编译有错后,更换sd相关的库文件,编译无错误。 (2)进入仿真跟踪模式,到rt_hw_board_init()里调用的rt_components_board_init()函数走不动了,然后进入 rt_components_board_init()函数,发现程序跑到rt_components_board_init()的(*fn_ptr)();这句话,跑不动了。 然后看到下面界面停留在红圈处(由于当时未截图,此图只是演示一下从哪里看到的信息)  当时一直点击(*fn_ptr)()往下一步执行,就发现在图中右下角红圈处一直走不动,鼠标点击上去, 显示rt_hw_sdcard_init(),此函数是自动初始化执行的,即INIT_BOARD_EXPORT(rt_hw_sdcard_init), 然后换成INIT_APP_EXPORT(rt_hw_sdcard_init),就解决问题了。 至于为啥换了就解决了,我也不清楚,我是在论坛里看到别人处理此种类似错误,就尝试一下。 对于原因也没看到为啥,如果有懂的小伙伴,欢迎解释:lol
查看更多
4
个回答
默认排序
按发布时间排序
yqiu
2018-09-07
这家伙很懒,什么也没写!
恩,组件初始化相关的内容正在往书中写呢; 初始化顺序 宏接口 描述 1 INIT_BOARD_EXPORT(fn) 非常早期的初始化,此时调度器还未启动 2 INIT_PREV_EXPORT(fn) 主要是用于纯软件的初始化、没有太多依赖的函数 3 INIT_DEVICE_EXPORT(fn) 外设驱动初始化相关,比如网卡设备 4 INIT_COMPONENT_EXPORT(fn) 组件初始化,比如文件系统或者LWIP 5 INIT_ENV_EXPORT(fn) 系统环境初始化,比如挂载文件系统 6 INIT_APP_EXPORT(fn) 应用初始化,比如GUI应用
whj467467222
认证专家
2018-09-07
开源,分享,交流,共同进步
自动初始化是有优先级的,你可以在源码里找到注释
hyz_rtt
2018-09-07
这家伙很懒,什么也没写!
>自动初始化是有优先级的,你可以在源码里找到注释 --- 恩恩 好的
hyz_rtt
2018-09-07
这家伙很懒,什么也没写!
>恩,组件初始化相关的内容正在往书中写呢; > >初始化顺序 宏接口 描述 --- 谢谢大神指导,以前只知道自动初始化,但是具体没啥了解,会好好再学习。
撰写答案
登录
注册新账号
关注者
0
被浏览
3.5k
关于作者
hyz_rtt
这家伙很懒,什么也没写!
提问
10
回答
38
被采纳
0
关注TA
发私信
相关问题
1
stm32f407+lan8720 lwip2.0 作业提交
2
玩溜GD32303E-EVAL BSP系列(五)----设备连接网络
3
onenet应用连不上云端
4
【文件系统】晴天文件匹配
5
rtt semc sdram 基于操作系统怎么初始化驱动设备
6
RT-Thread移植笔记
7
RT-Thread内核移植+LoIIs+STM32F103C8+StdLib
8
EVN编译报错,求助大神
9
【内核和外设学习营】十里 简单LED闪亮测试
10
【内核和外设学习营】 十里 串口指令控制RGB灯点亮的颜色
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【CFP】2025 RT-Thread全球技术大会演讲征集开始啦!
2
在 RT-Thread Studio 环境中为 ART-Pi 2 移植 CherryUSB(以 usb_device 为例)
3
嵌入式ARM RISCV toolchain工具 梳理arm-none-eabi-gcc
4
使用官方BOOT升级,看这一篇就够了?(以STM32F407VGT6为例)
5
可以使用MQTT连接AI大模型吗
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
cubemx
ESP8266
WIZnet_W5500
UART
ota在线升级
BSP
PWM
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
ADC
GD32
定时器
flashDB
编译报错
socket
keil_MDK
中断
rt_mq_消息队列_msg_queue
Debug
SFUD
msh
ulog
C++_cpp
at_device
本月问答贡献
聚散无由
9
个答案
6
次被采纳
RTT_逍遥
7
个答案
2
次被采纳
a1012112796
5
个答案
2
次被采纳
加缪
2
个答案
2
次被采纳
踩姑娘的小蘑菇
6
个答案
1
次被采纳
本月文章贡献
wake_mirco
2
篇文章
7
次点赞
mushroom
1
篇文章
9
次点赞
张世争
1
篇文章
7
次点赞
RTT_逍遥
1
篇文章
5
次点赞
Jack_____
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部