新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stm32中出現的hard_fault問題 如何解決

        stm32中出現的hard_fault問題 如何解決

        作者: 時間:2016-11-13 來源:網絡 收藏
        最近移植別人的一個lora程序,公司前任同事已經搞定的程序,從IAR平臺移植到KEIL中,移植后,居然出現了hardfault問題。一直以來,我很少遇到這個問題,遇到了,也算是好事。

        然后看看如何解決的吧。

        本文引用地址:http://www.104case.com/article/201611/316535.htm

        1、單步執行,發現程序運行到哪的時候出現了hardfault問題。發現是初始化的時候。應該是結構體指針的初始化問題。

        2、其實也從晚上找了一些如何定位hardfault的問題點的方法。充分利用call stack以及但不調試的工具。

        3、問題點通常發生在數據越界,指針未初始化,堆棧溢出的這些情況。

        method-1 試過它的方法,查看寄存器,利用反匯編,定位出問題點。http://bbs.ednchina.com/BLOG_ARTICLE_3024685.HTM

        method-2 也試過這個方法,利用fault reports,以及call stack+local窗口,定位問題點。http://blog.csdn.net/xiahouzuoxin/article/details/10068455

        在這里,我推薦method-2。

        static void __lora_init(void)
        {
        lora_port_init(); ----GPIO的初始化
        register_rf_func(&ctrlTypefunc); ---結構體,成員是指針
        ····
        }
        更改為
        static void __lora_init(void)
        {
        register_rf_func(&ctrlTypefunc); ---結構體,成員是指針
        lora_port_init(); ----GPIO的初始化
        ····
        }
        由于結構體在lora_port_init();中使用到結構體ctrlTypefunc,但是未初始化,所以出現這個問題。


        關鍵詞: stm32中hardfaul

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 惠水县| 垣曲县| 甘德县| 渑池县| 鹤庆县| 贵定县| 定兴县| 凤山市| 临安市| 乐都县| 尚志市| 合川市| 旬阳县| 曲阜市| 九寨沟县| 乌兰察布市| 涞源县| 庄河市| 永州市| 巨野县| 桂林市| 龙游县| 嵊州市| 乌鲁木齐市| 吐鲁番市| 高淳县| 五台县| 聂荣县| 兴宁市| 乌拉特前旗| 兰考县| 车致| 宜阳县| 融水| 临清市| 惠水县| 昌江| 静乐县| 铜陵市| 桂林市| 永福县|