最近买了一块AX58400的开发板,mcu用的是双核的ST32H755,在调试过程中发现只有keil单步调试可以运行,上电后无法自动运行,且调试打断点run也不能运行。我是在其开发板原程序主循环中增加了一句串口打印,单步调试至主循环,结束debug后,串口打印是正常的,重新上电就没有显示了。魔术棒选项已勾选使用微库,各位有没有遇到过呢
可能导致此问题的常见原因和建议的解决方法:
1.配置错误:确保正确配置了开发板和MCU的时钟和引脚设置。检查的代码和硬件配置文件,确保它们与使用的开发板和MCU相匹配。
2.复位问题:检查复位电路是否正常工作。确认复位引脚连接正确,复位电路元件(如电容)符合要求,并且复位电路满足MCU的复位规范。
3.中断优先级配置:如果在程序中使用了中断,确保正确配置了中断优先级。优先级不正确可能导致中断无法触发或影响程序的正常执行。
4.编译器选项:检查使用的编译器选项是否正确配置。某些编译器选项可能会影响程序的执行方式,如是否启用优化选项或调试信息。
5.电源供应问题:确保开发板的电源供应稳定,并满足MCU的要求。检查电源线路和电源管理芯片,确保它们正常工作。
6.代码错误:仔细检查的代码,尤其是主循环的逻辑。确保没有无限循环或其他导致程序无法继续执行的问题。
如果仔细检查了上述可能的问题但仍然无法解决,参考ST32H755 MCU的文档和开发板的用户手册,查看是否有关于自动运行和调试的特殊要求或限制。
确保开发板的硬件连接正确,并且电源供应稳定。检查开发板上的跳线、开关和按钮设置是否正确。
没碰到你这种情况,猜测程序跑起来之后直接进入HardFault_Handler,或者M7内核的有啥骚操作,问一下大佬吧
之前遇到过类似的情况,要调试时点几次运行才跑得起来,后来代码小了就好了,可以试试以下方法:
1、修改优化等级
2、修改堆栈大小
3、优化代码
stm32处理器调试模式下运行正常,上电自启动后运行不正常的故障排查分析
首先,你要明白一个道理,单步逻辑对的,那么程序就是对的。不要被奇异的表象所蒙蔽了,凡事要讲科学。
那么你要保证,调试模式你的程序不会出现指针溢出或者hardfault.
第二步,查时钟电源复位是否正常。
连接文章指出:JLINK调试程序,程序直接下载到SRAM, BOOT1接地 在User FLash中启动。
那么重点检查 boot设计或者设置的是否 有问题。
第三步,有没有启动耗时的外设。
我的外挂外设是一个外部的 电位计和一个串口屏。分析是电位计需要延时一段时间后能够正常的操作
既然单步执行没问题,说明你的代码逻辑上没问题,问题可能就出在时序上了,,有的程序对运行时间、协同上有要求,比如你需要的资源比较慢,单步执行时,执行慢,断点多,执行到的时候资源已经准备好,当你全速执行时,资源在执行时间内却还没有准备好,肯定就出错了
首先要确保你的单步调试完全能够走通。其次检查时钟电源复位是否正常,重点检查 boot设计或者设置的是否 有问题
出现这个现象还有一个很大的潜在诱因是有没有启动耗时的外设。
检查复位向量是否正确配置,以及芯片复位电路是否正常工作