OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2961|回复: 6

求助!移植FATFS程序到F411出现问题

[复制链接]

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
发表于 2016-1-12 21:10:49 | 显示全部楼层 |阅读模式
10金钱
我在F103ZET6的板子上成功的用FATFS控制了SD卡的读写,然后准备将FATFS在F4系列的板子上跑下,结果发现程序跑到my_mem_init(SRAMCCM);就挂掉了,DeBug一下发现最后进入到void HardFault_Handler(void)。我把my_mem_init(SRAMCCM);注释掉之后,SD卡就能成功的初始化并可以把SD卡的相关信息都发送到串口调试助手但用res=mf_mount("0:",1);挂载SD卡时始终不成功,再次进行DEBUG时发现程序死在diskio.c的read_disk函数的while里面,返回值一直是7跳不出循环。F103板子的程序里没有my_mem_init(SRAMCCM);这句到了F4的板子上就有,我不知道这句是对哪部分内存进行初始化,是不是因为缺少这句才导致后面SD卡的挂载失败?(话说有这句程序就直接死在这句上了,好纠结)。求原子哥解释下F1和F4上FATFS系统初始化的区别以及解决方法,搞了一天还没成功挂载SD卡,我的头都要疼炸了。

最佳答案

查看完整内容[请看2#楼]

呼,问题终于解决了,把SD_Init函数里的errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_4b);改为errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_1b);就能成功挂载SD卡,虽然读取速度变慢了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-12 21:10:50 | 显示全部楼层
呼,问题终于解决了,把SD_Init函数里的errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_4b);改为errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_1b);就能成功挂载SD卡,虽然读取速度变慢了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-1-12 22:34:23 | 显示全部楼层
这是初始化CCM内存.F4才有的.103没有. 不过文件系统也没有用到这个CCM.不影响才对.
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-13 08:41:16 | 显示全部楼层
就是啊,我把初始化CCM内存那句注释掉了,但SD卡怎么挂载都挂不上去,res的返回值一直是7.
回复

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1683
注册时间
2014-2-25
在线时间
230 小时
发表于 2016-1-13 08:59:20 | 显示全部楼层
zx8582040/ 发表于 2016-1-13 08:41
就是啊,我把初始化CCM内存那句注释掉了,但SD卡怎么挂载都挂不上去,res的返回值一直是7.

移植FATs最常见的问题就是挂在不上,用电脑格式化一下SD卡试试,或者换一张试试看
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-13 10:20:31 | 显示全部楼层
我之前将手头上的这张卡放在F103上挂载使用了的,将其重命名了的,现在换到F411上就挂载不了了,是不是用SDIO驱动SD卡很坑爹,换成SPI驱动会不会好些?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2016-6-23
在线时间
0 小时
发表于 2016-11-14 16:58:09 | 显示全部楼层
请问死在my_mem_init(SRAMCCM);这句话的bug找出来了么,我也死在这里了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 05:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表