一、编译和链接都可以经过,但uVision MDK不能全速运转,一运转就中止了,原因在于Option->Target->Code Generation->Use MicroLIB 复选框没有打钩,一般来说,针对一运转就中止的状况,将Use MicroLIB勾选之后,从头编译,运转就可以经过了。
二、仿真调试时没有问题,但经过JLink调试时呈现如下提示:
“Flash Download Failed-“Cortex-M3” ,则或许的原因是:Option->Debug->Use Driver for Flash Programming->Setting->Flash Download->Programming Algotithm 或 Option->Utilities->Use Driver for Flash Programming->Setting->Flash Download->Programming Algotithm没有增加相应类型的芯片FLASH阐明,一般在这两个选项卡中别离点击ADD,增加STM32F10x High-density Flash 即可。
三、调试时,程序总是中止在LDR
默许startup_stm32f10x_hd.s中 Stack_Size
四、调试时,程序中止在HardFault_Handler的问题(引证网上的总结)
原因有两个,仓库溢出和数组越界,很不幸的是这两种状况都被我碰到了。
startup_stm32f10x_md.s中修正“Stack_Size
“Stack_Size EQU
界说了一个数组ya[10],界说了一个计数变量count,因为没有初始化count,导致count的值一开始就大于数
组鸿沟,导致数组越界,初始化count=0后,程序正常。
我在调试的进程中,界说了两个结构体的指针变量,然后对这两个指针变量赋值,在履行榜首个赋值句子的时分,程序中止在HardFault_Handler,最终的解决办法是将结构体的指针变量改为一般变量,赋值进程不再呈现意外。