![shequ.stmicroelectronics.cn](./template/st_v1/static/img/logo2.png)
目前在做一个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 系统复位不可用 不知道啥问题了,各位大佬给点建议~~~ |
STM32H7 FMC模式1的NADV时序问题
STM32H743 SPI3 做从机 接收标记置不了位
程序跑到H723ZGT6的flash擦除那一段命令就死机
stm32h743使用cubemx配置,用HAL库驱动eMMC_BGA169存储芯片,数据读写不了。
芯片保护怎么解锁
STM32H747I-DISCO开发板st link连接不上,怀疑是因为没有采用开发板默认的SMPS供电模式而采用了LDO供电。
关于STM32的PWM占空比设置
Stem32CubeIDE能像Keil一样指定不同文件下的代码编译到不同的FLASH地址吗?比如部分代码存放到内部FLASH,另一部分存放到外部QSPI的FLASH中
STM32H745单片机按照官方手册AN5286配置的,想简单点亮一个led,程序可以正常烧进去,但是不好使,请问为什么啊?
STM32 H7B0VBT6同时使用A和B闹钟,操作备份寄存器导致闹钟无法唤醒
已找到原因:编译器优化等级导致,原levev2,现改为level0就可以,但会导致其他功能出现bug,最终还是要使用level2, 现在有新的问题:编译器优化等级会影响哪些内容?
[md]代码优化是个很大的话题,网上也很多相关文章可以阅读。
作为嵌入式应用,比较容易出问题的一个地方就是那些全局变量,尤其当某全局变量既可以
在主程序中被访问,又会在中断中被访问时,建议加上volatile关键词。
再就是代码不够规范,编译器按照它的理解将代码调整了,调整后的代码可能未必跟程序员的意思一致。