STM32 + SDIO + FATFS 调试记录
来源:互联网 发布:基因药物有哪些 知乎 编辑:程序博客网 时间:2024/04/27 17:39
首先要说一个问题,就是在写文件(f_write)的时候跳硬件中断的问题。堆栈不够,使用的开发板是奋斗v3.0,芯片是stm32f103vet6,有64K的ram,但是在startup_stm32f10x_hd.s的启动代码文件里对堆栈的定义却很小,不知道为什么,是因为别的硬件资源自己去分配么?现在还没有搞明白。下面有图为证:
原来是512个字节,现在我把他修改成了 2048个字节(2kb)。就可以使用了,在Fatfs操作过程中,他的每一个写操作的单位就是512字节,堆栈也是512字节,自然会溢出没得说,然后程序就会跳到硬件中断那里歇着去了。
另外一个问题,在写操作的时候程序会在SD卡的写操作上面死掉,现在还找到原因,需要仔细看下DMA和SDIO直接的访问情况。
给注释掉就可以正常的写文件了。
2011年1月12日 11:40:54
下面写下我的理解和解决办法:
首先分析了下代码造成在上述地方程序死循环的不是下面的读操作而是写操作的f_close()函数。
在sdcard.c文件的开始定义了 volatile SD_Error TransferError = SD_OK;(即0x2A)
那么分析这句话的意思
while ((TransferEnd == 0) && (TransferError == SD_OK))
{}
{}
当传输结束并且没有错误的时候进入死循环?!说不通啊,但是在IAR的编译器里就可以运行,现在要查找从定义到死循环之间有没有什么操作可以改变这两个变量的值。初步看没有什么会变化的情况,要对照IAR的仿真运行一起看。
问题已经解决,要谢谢网友stm32!
要在stm32f10x_it.c里把SDIO的中断服务函数加上,注意要开启SD中断允许!
/*******************************************************************************
* Function Name : SDIO_IRQHandler
* Description : This function handles SDIO global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void SDIO_IRQHandler(void)
{
SD_ProcessIRQSrc();
}
* Function Name : SDIO_IRQHandler
* Description : This function handles SDIO global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void SDIO_IRQHandler(void)
{
SD_ProcessIRQSrc();
}
然后就ok了。
转自:http://blog.163.com/wanghengzhi@126/blog/static/168853652201011171719625/
- STM32 + SDIO + FATFS 调试记录
- STM32 SDIO FATFS文件系统 野火diskio.c文件解析
- FatFs STM32
- FATFS移植、调试过程(在STM32上使用W25Q64)
- STM32 IAP调试记录
- STM32调试记录
- STM32 调试记录
- stm32 sdio调试,修改官方例程bug,已成功调通SDIO读取SD卡
- STM32中 FatFS移植
- STM32移植FATFS文件系统
- STM32中FatFS移植
- s3c2440 + wince5.0 + sdio接口wifi 8686的调试记录
- stm32 Fatfs 读写SD卡
- STM32利用FATFS读写数组
- STM32 SDIO 报错 SD_RX_OVERRUN
- STM32 USB SD读卡器(SDIO)
- STM32的RS485调试过程记录
- USB的FATFS文件系统调试
- 缓冲输出
- 记录我的新工作(八)
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- epoll模型的使用及其描述符耗尽问题的探讨
- django 自定义 字段类型
- STM32 + SDIO + FATFS 调试记录
- 从泄密门分析中国网民习惯
- mhtml5.com举办的HTML5游戏大赛入围作品名单
- c# switch中使用goto
- c#winform DatagridView使用总结
- 项目试验的小demo-关于画布上动态显示一张图片的一部分
- 递归,迭代还是其他?
- spark+openfire IM开源应用配置方法简介
- 程序员总结:帮助你早些明白一些道理