OpenEdv-开源电子网

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

USB HOST 、SD卡及FATFS文件系统同时用的堆栈溢出问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-6-10
在线时间
6 小时
发表于 2019-6-10 15:32:49 | 显示全部楼层 |阅读模式
STM32使用文件系统FATFS的时候非常容易出现栈溢出的现象:
重复使用f_open,f_readdir,等函数会出现第二次或者第三次调用(参数不同)时候程序异常,(我是重复使用f_readdir会出现这样的问题)debug显示总在运行中,查看call stack发现调用位置特别深,在最深处总是循环,出不去。
网上查找了很多代码指导,包括修改时钟,修改全局变量(这个应该可以,但是我程序较大,改一两处没用,担心全部改完之后还是处于临界溢出状态,稍微变动可能就会出现问题),查看硬件连接,查看中断,查看是否是分配内存过小等问题,最后才看到这个堆栈问题。
解决方案:
打开stm32的启动文件startup_stm32f40_41xxx.s
修改第四十一行:Stack_Size      EQU    0x00000F00
原先为400,我修改到800,有时还会卡死,于是增加到了f00,问题完美解决
堆栈修改.png

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 21:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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