软件是MDK5.29,STM32CubeMX5.5用RTE建立工程,使用了RTX、FlashFS、RGB LCD、SDRAM,STM32CubeMX初始化IO、时钟和外设。
进入调试模式后,自动停在 LDR R0, =SystemInit,而不是自动运行到main(),此时F5、F10、F11都运行正常,程序执行效果和代码一致。
断电后再重新上电也不会自动运行。
可以排除硬件问题,因为运行MDK自带的File_Demo例子能正常运行到main()(使用MDK自带的PackInstaller.exe 选择开发板的例程,copy出来的工程文件)
做了如下尝试:
(1)对比File_Demo工程和汇编文件,仅仅在汇编文件里 加大堆栈,都分别加大到了0x6000,无效;
(2)把MDK option设置里,Debug栏中 Reset模式选择 SYSRESETREQ(默认为Autodetect),无效;
(3)把自编代码里的printf 注释掉,原本是通过ITM 可以正常发数据和显示。
以上(2)、(3)是网上搜索看了一些经验而做的,目前看都不是这方面问题。
有没有哪位大侠,帮忙提示一下,万分谢谢! |