开发板:STM32F10B_EVAL
使用STM32的USB例程VirtualCOMPort,工程设置Device选用STM32F10xxB,勾选run to main。例程不做其他改动。
将例程下载到开发板中,发现无法跑到main函数部分,暂停调试,发现工程发生了下面的死循环:
080015AE 4807 LDR R0,[PC,#0x1C] //执行过后R0=0x20003C58
080015B0 6800 LDR R0,[R0] //执行过后R0=0x00000C2F
080015B2 F2417170 MOVW R1,#0x1770
080015B6 4288 CMP R0,R1
080015B8 D204 BCS 0x80015C4
080015BA 4805 LDR R0,[PC,#0x14] //执行过后R0=0x20003802
080015BC 7800 LDRB R0,[R0] //执行过后R0=0
080015BE 2801 CMP R0,#0x1
080015C0 D000 BEQ #0x80015C4
080015C2 E7F4 B #0x80015AE
而且,在调试过程中,每次暂停都会提示CSTACK容量不够,但我照例程的0x400提高4倍至0x1000时,还是会提示容量不够
请教高人,我该怎样走出这个死循环和CSTACK容量问题
谢谢
调试其它例程也有问题吗? 还是只有USB例程有问题?
调试其他非USB的例程没有问题,只有USB的例程有问题
IAR Embedded workbench IDE
只有USB的例程有问题,非USB的例程我试过了,没问题的
经过今天的挣扎,问题解决了
我换了一个JTAG调试工具,现象就全没了,工程能够运行正常了
经过今天的挣扎,问题解决了
我换了一个JTAG调试工具,现象就全没了,工程能够运行正常了
看样子原来那个JTAG调试工具下载代码有问题,在下载代码时最好把校验功能也选上,这样可以避免走些弯路。