在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 編譯后不能運(yùn)行的幾個(gè)原因

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

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



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

            本文引用地址:http://www.biyoush.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)有添加相應(yīng)類型的芯片F(xiàn)LASH說(shuō)明,一般在這兩個(gè)選項(xiàng)卡中分別點(diǎn)擊ADD,添加STM32F10x High-density Flash 即可。






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

            默認(rèn)startup_stm32f10x_hd.s中 Stack_Size EQU 0x00000400,如果改大之后,可能調(diào)試就可以正常運(yùn)行。

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

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

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

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

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

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

            組邊界,導(dǎo)致數(shù)組越界,初始化count=0后,程序正常。

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



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

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉