Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
STM32F407上调试SD卡时遇到的问题
发布于 2012-06-30 21:30:04 浏览:4539
订阅该版
RTT 1.01,SD卡驱动用的是照着ST固件包Utilities里面改的。有些函数的参数顺序与207和10x不同,这个我已经改过了。 之前关DMA的时候调通过一次,挂了elmfat,可以列目录、读文件,但是不能写。后来我打开DMA,又改了些代码,终于连读都不能读了。有一些问题: 1. SD_LowLevel_DMA_TxConfig和SD_LowLevel_DMA_RxConfig都有这么一句: ```SDDMA_InitStructure.DMA_BufferSize = 0;``` 难道不应该是 ```SDDMA_InitStructure.DMA_BufferSize = BufferSize;``` 按ST的写法,开assert会出错吧 2. 我应该在rt_hw_sdcard_init里开了SDIO_IRQn和SD_SDIO_DMA_IRQn,中断处理程序是这样的 ```#if defined(RT_USING_DFS) void SDIO_IRQHandler(void) { /* enter interrupt */ rt_interrupt_enter(); /* Process All SDIO Interrupt Sources */ if( SD_ProcessIRQSrc() == 2) rt_kprintf("SD Error "); /* leave interrupt */ rt_interrupt_leave(); } #endif #if defined(RT_USING_DFS) void DMA2_Stream3_IRQHandler(void) { /* enter interrupt */ rt_interrupt_enter(); /* Process DMA2 Stream3 or DMA2 Stream6 Interrupt Sources */ SD_ProcessDMAIRQ(); /* leave interrupt */ rt_interrupt_leave(); } #endif ``` 3. rt_sdcard_write和rt_sdcard_read基本上参考rtt附带的stm32f2xx的bsp,只是改了几个函数参数的顺序 现在的结果是,全速运行会hard fault: | / - RT - Thread Operating System / | 1.0.1 build Jun 30 2012 2006 - 2011 Copyright by rt-thread team File System initialized! psr: 0x61000000 pc: 0x0800a73e lr: 0x0800a723 r12: 0x20002f45 r03: 0x00000000 r02: 0x00ff003f r01: 0x0000f800 r00: 0x20002778 hard fault on thread: ?XMSDOS5.0 thread pri status sp stack size max used left tick error -------- ---- ------- ---------- ---------- ---------- ---------- --- tidle 0x1f ready 0x000000c8 0x00000400 0x000000c8 0x00000020 000 timer 0x04 suspend 0x00000100 0x00000200 0x00000100 0x00000009 000 tshell 0x14 ready 0x000000c8 0x00000800 0x000000c8 0x0000000a 000 led 0x0b ready 0x000000c8 0x00000400 0x000000c8 0x00000005 000 ?XMSDOS5.0 0x00 init 0x00000002 0x00000002 0x00000002 0x414e204f 000 应该是因为从SD读上来的数据冲了某线程的数据,MSDOS5.0是SD卡中第一个512字节中的数据。 如果调试时在某些地方加断点,则可能不会出现这种情况,但是finsh中输入ls()时此命令不能完成,不过led线程还是在跑。 有没有同学给点提示啊???
查看更多
5
个回答
默认排序
按发布时间排序
xlog
2012-07-10
这家伙很懒,什么也没写!
看看PC:0x0800a73e 是什么代码?
strongleg
2012-07-11
这家伙很懒,什么也没写!
照着realtouch代码改好了, [s:154]
prife
2012-07-11
这家伙很懒,什么也没写!
>照着realtouch代码改好了, [s:154] --- 把你是如何解决的分享一下吧~~帮助后来人~~
strongleg
2012-07-14
这家伙很懒,什么也没写!
``` SDDMA_InitStructure.DMA_BufferSize = 1; ``` 而不是0或者BufferSize,我也不知道为什么 sdio驱动用的ST开发板bsp, 另外新建了两个rtt的驱动文件rtt_driver_sdio.c,.h,主要是为了把ST的代码和rtt代码分开。我觉得这样好一点吧,bsp和rtt驱动分开? rtt_driver_sdio也是来自realtouch
撰写答案
登录
注册新账号
关注者
0
被浏览
4.5k
关于作者
strongleg
这家伙很懒,什么也没写!
提问
16
回答
26
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
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
EtherKit快速上手PROFINET
2
RTThread USB转串口无法接收数据
3
HC32F4A0 SD卡挂载及热插拔的实现
4
vscode插件 - RT-Thread Studio项目助手 | 跨平台开发
5
Console串口使用说明
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
812
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
2
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部