新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 解決STM32調試,無法進入main函數的問題

        解決STM32調試,無法進入main函數的問題

        作者: 時間:2016-11-25 來源:網絡 收藏
        昨天調試STM32程序,以前使用的是MDK3.40的版本,把版本升了下級,升到了MDK4.10,裝好后,一運行,哈哈,新版本給人的感覺就是不一樣啊,很爽,較之前有很多改進,把自己以前的程序打開,編譯運行發現程序調試時無法進入Main函數,弄了很久,很是郁悶啊,最后還是在ourdev的壇子里,找到了同樣問題的解決方法,多謝ourdev,以下是壇子里面的帖子,我把他貼出來了.
        sdc666 :
        請問高手,我在調試我的STM32F101c8t6時,遇到一個問題,因為我要調試串口,我在main.c中添加了#include,編譯可以通過,但是當我用jlink硬件調試時,一開始就停在了"0x08001460BEABBKPT0xAB";并且無法向下運行.請問高手,這個問題的原因是什么?怎么解決?謝謝!
        _sys_open:
        0x08001450B50EPUSH{r1-r3,lr}
        0x08001452E9CD0100STRDr0,r1,[sp,#0]
        0x08001456F000FAF9BL.Wstrlen(0x08001A4C)
        0x0800145A9002STRr0,[sp,#0x08]
        0x0800145C4669MOVr1,sp
        0x0800145E2001MOVSr0,#0x01
        0x08001460BEABBKPT0xAB
        0x08001462BD0EPOP{r1-r3,pc}
        pldjn :
        應該是項目設置的問題,檢查一下你的設置.
        sdc666:
        pldjn你好,能詳細指點以下么?應該怎樣設置?這個程序是我該的,本來是沒有#include,我添加串口后因為需要標準庫函數,所以才加上的.是不是還要設置編譯環境?謝謝.
        pldjn :
        你用J-Flash打開你的HEX文件看看編譯的是否是對的.不用自動下載使用J-flash燒進去調一下試試.
        dragonwww:
        我也遇到同樣問題,我是調用printf時出現的這個錯誤,我已經把putchar重定位了,不知道為何還是出錯,求解,THX!
        yugen:
        那是因為你使用了printf之類的庫函數,需要編寫_sys_exit()之類底層函數。照你的提示看,也許是_sys_open()沒寫。_sys_xxx之類的的只要寫個空函數就行了。
        dragonwww:
        toyugen:
        能否說的再仔細些,如果自己編寫個空函數應該放在哪里?函數定義格式是什么樣的呢?
        納悶的是以前也用過printf,沒出現這個提示啊。
        PZLPDY:
        5樓的應該不是這樣吧?
        應該是你沒有選中微庫造成的。這個問題昨天我遇到過。在工程的設置選項里把微庫勾上就OK了
        dragonwww:
        toPZLPDY:
        蒼天啊,果然如你所說,把微庫勾上就OK了,奇怪了為什么以前用的的時候沒報錯呢?以前也沒選微庫啊!
        yugen:
        因printf()之類的函數,使用了半主機模式。使用微庫的話,不會使用半主機模式,所以就沒有問題。
        添加下面代碼,就可以使用標準庫了:
        #pragmaimport(__use_no_semihosting)
        _sys_exit(intx)
        {
        x=x;
        }
        struct__FILE
        {
        inthandle;



        };

        FILE__stdout;
        dragonwww:
        yugen是高手啊,再請教一下:
        1.何為“半主機模式”?與非半主機模式有何區別?
        2.你的這段代碼需要放在那個文件里?自己的main函數所在的文件嗎?
        3.看到代碼實現了_sys_exit,那我提示錯誤的_sys_open()不用實現嗎?
        請指教,多謝!
        yugen:
        你說的問題都可以在"RealView?編譯工具庫和浮點支持指南"書中找到,網上有下,我就不復制了。書有中文的。realview編譯器有好幾本書,都有中文。


        關鍵詞: STM32調試main函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临城县| 徐汇区| 景泰县| 益阳市| 深泽县| 枣强县| 南投市| 金寨县| 久治县| 中山市| 石嘴山市| 宁强县| 平遥县| 衡水市| 阜南县| 浦城县| 马尔康县| 德昌县| 重庆市| 会宁县| 潮安县| 济宁市| 庐江县| 霸州市| 革吉县| 化州市| 太和县| 康乐县| 临武县| 秀山| 泰宁县| 建平县| 德江县| 天津市| 沾益县| 晋中市| 金溪县| 获嘉县| 泸定县| 屯昌县| 旬邑县|