|
开发环境是CubeIDE + STM32N647,工程是基于正点原子官方AI人体检测例程,然后移植了自己的YOLOv8n模型。现在遇到了一个非常诡异的问题:无论我怎么修改app.c、app_config.h这些源文件,在CubeIDE里点Build之后控制台显示“Build Finished, 0 errors”,Debug文件夹里的HEX文件时间戳也确实更新了,用STM32CubeProgrammer烧录这个最新的HEX文件也提示烧录成功,但板子跑起来之后,程序行为跟修改之前一模一样,完全没有任何变化。为了验证是不是我改的代码逻辑有问题,我在main.c的HAL_Init()后面直接加了一段LED闪烁的代码,让板子上电后先闪几下再往下跑,结果烧录后LED根本不闪,就感觉这段代码根本不存在一样。更奇怪的是,如果我把之前官方人体检测例程那个旧的HEX文件烧回去,程序就运行得完全正常,但是换成我自己工程哪怕只是改一行无关代码之后编译出来的HEX,就又变回旧的行为。我已经试过手动删除整个Debug文件夹再重新编译、在项目属性里把优化等级改成-O0再编译、反复确认烧录的路径是最新生成的HEX,所有步骤都确认无误,但问题依旧。现在完全想不通问题到底出在哪个环节,CubeIDE显示的编译成功是不是假象?为什么生成的HEX文件时间戳变了但内容看起来完全没变?有没有遇到过类似情况的朋友,帮忙指点一下排查方向,感谢了。 |