你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

USB MSC+ FATFS 不兼容?

[复制链接]
newbie 提问时间:2024-7-26 11:22 / 已解决

目前在做一个USB导出LOG的功能,使用文件系统 FATFS 将日志写入文件(用的内部flash,后512k),再用USB MSC虚拟U盘,连接PC可以直接将LOG文件拖出来,目前功能都已经实现并测试通过,但只有第一次下载程序可以正常执行,再次复位后程序直接不跑了, 影响到了flash? 看一些帖子,多主机操作文件系统会出问题(stm32 与PC同时操作文件系统),我在使用USB MSC就已经把文件系统卸载了,并做了以下测试

测试: 1.usb虚拟u盘地址 与 文件系统地址 使用相同地址:0x08080000 只有第一次可以启动成功 系统复位不可用 2.usb虚拟u盘地址包括 文件系统地址 usb msc add:0x0807A000 disk fatfs address:0x08080000 系统复位不可用 3.文件系统地址包括USB虚拟u盘地址 usb msc add:0x08080000 disk fatfs address:0x0807A000 系统复位不可用

不知道啥问题了,各位大佬给点建议~~~

收藏 评论2 发布时间:2024-7-26 11:22

举报

2个回答
xmshao 最优答案 回答时间:2024-7-26 14:52:04

newbie 发表于 2024-7-26 11:55
已找到原因:编译器优化等级导致,原levev2,现改为level0就可以,但会导致其他功能出现bug,最终还是要 ...

[md]代码优化是个很大的话题,网上也很多相关文章可以阅读。

作为嵌入式应用,比较容易出问题的一个地方就是那些全局变量,尤其当某全局变量既可以

在主程序中被访问,又会在中断中被访问时,建议加上volatile关键词。

再就是代码不够规范,编译器按照它的理解将代码调整了,调整后的代码可能未必跟程序员的意思一致。

newbie 回答时间:2024-7-26 11:55:16

已找到原因:编译器优化等级导致,原levev2,现改为level0就可以,但会导致其他功能出现bug,最终还是要使用level2, 现在有新的问题:编译器优化等级会影响哪些内容?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版