<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 編譯后不能運行的幾個(gè)原因

STM32 編譯后不能運行的幾個(gè)原因

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
一、編譯和鏈接都可以通過(guò),但uVision MDK不能全速運行,一運行就停止了,原因在于Option->Target->Code Generation->Use MicroLIB 復選框沒(méi)有打鉤,一般來(lái)說(shuō),針對一運行就停止的情況,將Use MicroLIB勾選之后,重新編譯,運行就可以通過(guò)了。



二、仿真調試時(shí)沒(méi)有問(wèn)題,但通過(guò)JLink調試時(shí)出現如下提示:

本文引用地址:http://dyxdggzs.com/article/201611/319402.htm

"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沒(méi)有添加相應類(lèi)型的芯片FLASH說(shuō)明,一般在這兩個(gè)選項卡中分別點(diǎn)擊ADD,添加STM32F10x High-density Flash 即可。






三、調試時(shí),程序總是停止在LDR R0, =SystemInit 語(yǔ)句,原因如下:堆??臻g默認的太小

默認startup_stm32f10x_hd.s中 Stack_Size EQU 0x00000400,如果改大之后,可能調試就可以正常運行。

四、調試時(shí),程序停止在HardFault_Handler的問(wèn)題(引用網(wǎng)上的總結)

最近調試UCGUI和UCOSII,程序莫名其妙的死掉了,用JLINK調試,發(fā)現進(jìn)入了HardFault_Handler,主要

原因有兩個(gè),堆棧溢出和數組越界,很不幸的是這兩種情況都被我碰到了。
第一次是用UCGUI在一個(gè)button上顯示文字,發(fā)現字符串顯示不全,只顯示第一個(gè)字符,在啟動(dòng)文件

startup_stm32f10x_md.s中修改“Stack_Size EQU 0x00000200”,將堆棧改大點(diǎn),改為

“Stack_Size EQU 0x00000400”后顯示正常。
第二次是UCGUI和UCOSII聯(lián)合調試時(shí),也進(jìn)入了HardFault_Handler,這次原因是數組越界,在一個(gè)函數中

定義了一個(gè)數組ya[10],定義了一個(gè)計數變量count,由于沒(méi)有初始化count,導致count的值一開(kāi)始就大于數

組邊界,導致數組越界,初始化count=0后,程序正常。

我在調試的過(guò)程中,定義了兩個(gè)結構體的指針變量,然后對這兩個(gè)指針變量賦值,在執行第一個(gè)賦值語(yǔ)句的時(shí)候,程序停止在HardFault_Handler,最后的解決辦法是將結構體的指針變量改為普通變量,賦值過(guò)程不再出現意外。



關(guān)鍵詞: STM32編譯不能運

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>