0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決STM32調(diào)試無(wú)法進(jìn)入main函數(shù)的問(wèn)題?

GReq_mcu168 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:工程師陳翠 ? 2018-10-05 10:06 ? 次閱讀

昨天調(diào)試STM32程序,以前使用的是MDK3.40的版本,把版本升了下級(jí),升到了MDK4.10,裝好后,一運(yùn)行,哈哈,新版本給人的感覺(jué)就是不一樣啊,很爽,較之前有很多改進(jìn),把自己以前的程序打開(kāi),編譯運(yùn)行發(fā)現(xiàn)程序調(diào)試時(shí)無(wú)法進(jìn)入Main函數(shù),弄了很久,很是郁悶啊,最后還是在ourdev的壇子里,找到了同樣問(wèn)題的解決方法,多謝ourdev,以下是壇子里面的帖子,我把他貼出來(lái)了.

sdc666 :

請(qǐng)問(wèn)高手,我在調(diào)試我的STM32F101c8t6時(shí),遇到一個(gè)問(wèn)題,因?yàn)槲乙{(diào)試串口,我在main.c中添加了#include,編譯可以通過(guò),但是當(dāng)我用jlink硬件調(diào)試時(shí),一開(kāi)始就停在了 " 0x08001460 BEAB BKPT 0xAB";并且無(wú)法向下運(yùn)行. 請(qǐng)問(wèn)高手,這個(gè)問(wèn)題的原因是什么?怎么解決? 謝謝!

_sys_open:

0x08001450 B50E PUSH {r1-r3,lr}

0x08001452 E9CD0100 STRD r0,r1,[sp,#0]

0x08001456 F000FAF9 BL.W strlen (0x08001A4C)

0x0800145A 9002 STR r0,[sp,#0x08]

0x0800145C 4669 MOV r1,sp

0x0800145E 2001 MOVS r0,#0x01

0x08001460 BEAB BKPT 0xAB

0x08001462 BD0E POP {r1-r3,pc}

pldjn :

應(yīng)該是項(xiàng)目設(shè)置的問(wèn)題,檢查一下你的設(shè)置.

sdc666:

pldjn 你好,能詳細(xì)指點(diǎn)以下么?應(yīng)該怎樣設(shè)置? 這個(gè)程序是我該的,本來(lái)是沒(méi)有#include,我添加串口后因?yàn)樾枰獦?biāo)準(zhǔn)庫(kù)函數(shù),所以才加上的. 是不是還要設(shè)置編譯環(huán)境? 謝謝.

pldjn :

你用J-Flash打開(kāi)你的HEX文件看看編譯的是否是對(duì)的.不用自動(dòng)下載使用J-flash燒進(jìn)去調(diào)一下試試.

dragonwww:

我也遇到同樣問(wèn)題,我是調(diào)用printf時(shí)出現(xiàn)的這個(gè)錯(cuò)誤,我已經(jīng)把putchar重定位了,不知道為何還是出錯(cuò),求解,THX!

yugen:

那是因?yàn)槟闶褂昧藀rintf之類(lèi)的庫(kù)函數(shù),需要編寫(xiě)_sys_exit()之類(lèi)底層函數(shù)。照你的提示看,也許是_sys_open()沒(méi)寫(xiě)。_sys_xxx之類(lèi)的的只要寫(xiě)個(gè)空函數(shù)就行了。

dragonwww: to yugen:

能否說(shuō)的再仔細(xì)些,如果自己編寫(xiě)個(gè)空函數(shù)應(yīng)該放在哪里?函數(shù)定義格式是什么樣的呢?

納悶的是以前也用過(guò)printf,沒(méi)出現(xiàn)這個(gè)提示啊。

PZLPDY:

5樓的應(yīng)該不是這樣吧?

應(yīng)該是你沒(méi)有選中微庫(kù)造成的。這個(gè)問(wèn)題昨天我遇到過(guò)。在工程的設(shè)置選項(xiàng)里把微庫(kù)勾上就OK了

dragonwww:to PZLPDY:

蒼天啊,果然如你所說(shuō),把微庫(kù)勾上就OK了,奇怪了為什么以前用的的時(shí)候沒(méi)報(bào)錯(cuò)呢?以前也沒(méi)選微庫(kù)啊!

yugen:

因printf()之類(lèi)的函數(shù),使用了半主機(jī)模式。使用微庫(kù)的話(huà),不會(huì)使用半主機(jī)模式,所以就沒(méi)有問(wèn)題。

添加下面代碼,就可以使用標(biāo)準(zhǔn)庫(kù)了:

#pragma import(__use_no_semihosting)

_sys_exit(int x)

{

x = x;

}

struct __FILE

{

int handle;

/* Whatever you require here. If the only file you are using is */

/* standard output using printf() for debugging, no file handling */

/* is required. */

};

/* FILE is typedef’ d in stdio.h. */

FILE __stdout;

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352433
  • main
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    6083

原文標(biāo)題:怎么解決STM32調(diào)試無(wú)法進(jìn)入main函數(shù)的問(wèn)題?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    stm32f103zet6燒錄程序后調(diào)試無(wú)法進(jìn)入main函數(shù)

    將買(mǎi)板子送的例程燒錄進(jìn)去可以正常運(yùn)行,但是進(jìn)入調(diào)試時(shí)pc會(huì)直接指向0x20000004地址然后陷入死循環(huán)無(wú)法進(jìn)入main
    發(fā)表于 01-18 15:19

    怎樣去解決stm32調(diào)試(debug)無(wú)法進(jìn)入main函數(shù)的問(wèn)題

    怎樣去解決stm32調(diào)試(debug)無(wú)法進(jìn)入main函數(shù)的問(wèn)題?
    發(fā)表于 10-26 06:23

    為何STM32F407程序移植后無(wú)法進(jìn)入main函數(shù)

    為何STM32F407程序移植后無(wú)法進(jìn)入main函數(shù)呢?是什么原因?qū)е碌模?/div>
    發(fā)表于 11-25 07:11

    是做什么原因造成stm32調(diào)試時(shí)無(wú)法進(jìn)入main函數(shù)

    是做什么原因造成stm32調(diào)試時(shí)無(wú)法進(jìn)入main函數(shù)呢?
    發(fā)表于 11-25 09:15

    為什么STM32程序調(diào)試時(shí)無(wú)法進(jìn)入Main函數(shù)

    為什么STM32程序調(diào)試時(shí)無(wú)法進(jìn)入Main函數(shù)呢?請(qǐng)問(wèn)高手這個(gè)問(wèn)題的原因是什么?怎么解決??
    發(fā)表于 11-25 08:50

    調(diào)試STM32時(shí)調(diào)試模式無(wú)法進(jìn)入main函數(shù)是為什么?

    調(diào)試STM32時(shí)調(diào)試模式無(wú)法進(jìn)入main函數(shù)是為什么
    發(fā)表于 11-26 06:35

    STM32 SWD無(wú)法調(diào)試無(wú)法進(jìn)入main函數(shù)是為什么?

    STM32 SWD無(wú)法調(diào)試無(wú)法進(jìn)入main函數(shù)
    發(fā)表于 11-26 06:52

    調(diào)試STM32時(shí)能下載程序但調(diào)試模式無(wú)法進(jìn)入main函數(shù)怎么解決?

    調(diào)試STM32時(shí)能下載程序但調(diào)試模式無(wú)法進(jìn)入main函數(shù)
    發(fā)表于 01-26 06:01

    怎樣去解決keil5中debug無(wú)法進(jìn)入main函數(shù)問(wèn)題

    keil5中debug無(wú)法進(jìn)入main函數(shù)問(wèn)題描述解決方法問(wèn)題描述使用keil5軟件,在進(jìn)行調(diào)試debug時(shí),
    發(fā)表于 01-27 06:48

    RT-Thread studio jlink最新版本調(diào)試hpm6750無(wú)法進(jìn)入main函數(shù)咋辦?

    rt thread studio jlink最新版本 調(diào)試hpm6750,無(wú)法進(jìn)入main函數(shù)點(diǎn)擊“debug”然后就停在這,
    發(fā)表于 02-20 14:26

    何解STM32芯片F(xiàn)lash寫(xiě)保護(hù)導(dǎo)致無(wú)法下載程序,無(wú)法在線(xiàn)調(diào)試的問(wèn)題

    ? 本文介紹了如何解STM32芯片F(xiàn)lash寫(xiě)保護(hù)導(dǎo)致無(wú)法下載程序,無(wú)法在線(xiàn)調(diào)試的問(wèn)題;如果您遇到相同的問(wèn)題,希望本文可以帶來(lái)一些幫助;
    的頭像 發(fā)表于 12-22 16:51 ?1.4w次閱讀

    STM32程序無(wú)法進(jìn)入main函數(shù)的解決方法

    很多人在基于STM32單片機(jī)項(xiàng)目開(kāi)發(fā)過(guò)程中,會(huì)遇到STM32程序無(wú)法進(jìn)入main的現(xiàn)象,在這篇文將分享S
    的頭像 發(fā)表于 07-22 16:18 ?1.5w次閱讀

    調(diào)試STM32時(shí)能下載程序但調(diào)試模式(debug)無(wú)法進(jìn)入main函數(shù)問(wèn)題

    調(diào)試STM32時(shí)能下載程序但調(diào)試模式(debug)無(wú)法進(jìn)入main
    發(fā)表于 12-01 13:36 ?17次下載
    <b class='flag-5'>調(diào)試</b><b class='flag-5'>STM32</b>時(shí)能下載程序但<b class='flag-5'>調(diào)試</b>模式(debug)<b class='flag-5'>無(wú)法</b><b class='flag-5'>進(jìn)入</b><b class='flag-5'>main</b><b class='flag-5'>函數(shù)</b>問(wèn)題

    STM32單片機(jī)---keil5中debug無(wú)法進(jìn)入main函數(shù)

    keil5中debug無(wú)法進(jìn)入main函數(shù)問(wèn)題描述解決方法問(wèn)題描述使用keil5軟件,在進(jìn)行調(diào)試debug時(shí),
    發(fā)表于 12-03 20:36 ?16次下載
    <b class='flag-5'>STM32</b>單片機(jī)---keil5中debug<b class='flag-5'>無(wú)法</b><b class='flag-5'>進(jìn)入</b><b class='flag-5'>main</b><b class='flag-5'>函數(shù)</b>

    單片機(jī) keil調(diào)試的時(shí)候進(jìn)入不了main函數(shù)

    單片機(jī) keil調(diào)試的時(shí)候進(jìn)入不了main函數(shù)
    發(fā)表于 12-03 20:51 ?6次下載
    單片機(jī) keil<b class='flag-5'>調(diào)試</b>的時(shí)候<b class='flag-5'>進(jìn)入</b>不了<b class='flag-5'>main</b><b class='flag-5'>函數(shù)</b>