解決STM32調(diào)試,無法進(jìn)入main函數(shù)的問題
sdc666 :
請問高手,我在調(diào)試我的STM32F101c8t6時,遇到一個問題,因為我要調(diào)試串口,我在main.c中添加了#include ,編譯可以通過,但是當(dāng)我用jlink硬件調(diào)試時,一開始就停在了 " 0x08001460 BEAB BKPT 0xAB";并且無法向下運行. 請問高手,這個問題的原因是什么?怎么解決? 謝謝!
_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}
0x08001450
0x08001452
0x08001456
0x0800145A
0x0800145C
0x0800145E
0x08001460
0x08001462
pldjn :
應(yīng)該是項目設(shè)置的問題,檢查一下你的設(shè)置.
sdc666:
pldjn 你好,能詳細(xì)指點以下么?應(yīng)該怎樣設(shè)置? 這個程序是我該的,本來是沒有#include ,我添加串口后因為需要標(biāo)準(zhǔn)庫函數(shù),所以才加上的. 是不是還要設(shè)置編譯環(huán)境? 謝謝.
pldjn :
你用J-Flash打開你的HEX文件看看編譯的是否是對的.不用自動下載使用J-flash燒進(jìn)去調(diào)一下試試.
你用J-Flash打開你的HEX文件看看編譯的是否是對的.不用自動下載使用J-flash燒進(jìn)去調(diào)一下試試.
dragonwww:
我也遇到同樣問題,我是調(diào)用printf時出現(xiàn)的這個錯誤,我已經(jīng)把putchar重定位了,不知道為何還是出錯,求解,THX!
yugen:
那是因為你使用了printf之類的庫函數(shù),需要編寫_sys_exit()之類底層函數(shù)。照你的提示看,也許是_sys_open()沒寫。_sys_xxx之類的的只要寫個空函數(shù)就行了。
dragonwww:
to yugen:
能否說的再仔細(xì)些,如果自己編寫個空函數(shù)應(yīng)該放在哪里?函數(shù)定義格式是什么樣的呢?
納悶的是以前也用過printf,沒出現(xiàn)這個提示啊。
PZLPDY:
5樓的應(yīng)該不是這樣吧?
應(yīng)該是你沒有選中微庫造成的。這個問題昨天我遇到過。在工程的設(shè)置選項里把微庫勾上就OK了
應(yīng)該是你沒有選中微庫造成的。這個問題昨天我遇到過。在工程的設(shè)置選項里把微庫勾上就OK了
dragonwww:
to PZLPDY:
蒼天啊,果然如你所說,把微庫勾上就OK了,奇怪了為什么以前用的的時候沒報錯呢?以前也沒選微庫?。?/div>
yugen:
因printf()之類的函數(shù),使用了半主機(jī)模式。使用微庫的話,不會使用半主機(jī)模式,所以就沒有問題。
添加下面代碼,就可以使用標(biāo)準(zhǔn)庫了:
#pragma import(__use_no_semihosting)
_sys_exit(int x)
{
x = x;
}
struct __FILE
{
int handle;
};
FILE __stdout;
添加下面代碼,就可以使用標(biāo)準(zhǔn)庫了:
#pragma
_sys_exit(int
{
x
}
struct
{
int
};
FILE
dragonwww:
yugen是高手啊,再請教一下:
1.何為“半主機(jī)模式”?與 非半主機(jī)模式有何區(qū)別?
2.你的這段代碼需要放在那個文件里?自己的main函數(shù)所在的文件嗎?
3.看到代碼實現(xiàn)了_sys_exit,那我提示錯誤的_sys_open()不用實現(xiàn)嗎?
請指教,多謝!
1.何為“半主機(jī)模式”?與
2.你的這段代碼需要放在那個文件里?自己的main函數(shù)所在的文件嗎?
3.看到代碼實現(xiàn)了_sys_exit,那我提示錯誤的_sys_open()不用實現(xiàn)嗎?
請指教,多謝!
yugen:
你說的問題都可以在"RealView? 編譯工具庫和浮點支持指南"書中找到,網(wǎng)上有下,我就不復(fù)制了。書有中文的。realview編譯器有好幾本書,都有中文。
關(guān)鍵詞:
STM32調(diào)試main函
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論