STM32 编译后不能运行的几个原因
二、仿真调试时没有问题,但通过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,最后的解决办法是将结构体的指针变量改为普通变量,赋值过程不再出现意外。
STM32编译不能运 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)