CH32V203xx不定時(shí)會(huì)觸發(fā)HardFault

接之前的帖子:http://m.findthetime.net/bbs/thread-99652-1.html

目前沒有在中斷里使用printf了,僅在main的循環(huán)里使用,但偶爾還是會(huì)不定時(shí)的觸發(fā)HardFault異常。

異常信息如下:

MCAUSE= 0x7

MTVAL= 0x4d904d6

MEPC= 0x2032

MSTATUS= 0x88


在反匯編視圖里定位到?0x2032處,顯示如下:

??????????__sfputc_r:
0000200e:???lw??????a5,8(a2)
00002010:???addi????a5,a5,-1
00002012:???sw??????a5,8(a2)
00002014:???bgez????a5,0x2028?<__sfputc_r+26>
00002018:???lw??????a4,24(a2)
0000201a:???blt?????a5,a4,0x2024?<__sfputc_r+22>
0000201e:???li??????a5,10
00002020:???bne?????a1,a5,0x2028?<__sfputc_r+26>
00002024:???j???????0x183c?<__swbuf_r>
00002028:???lw??????a5,0(a2)
0000202a:???mv??????a0,a1
0000202c:???addi????a4,a5,1
00002030:???sw??????a4,0(a2)
00002032:???fsd?????fa1,0(a5)
00002034:???ret


發(fā)現(xiàn)是調(diào)用__sfputc_r函數(shù)這里死掉了,請(qǐng)問這種異常該如何排查?

另外MRS里有辦法查看調(diào)用棧(call stack)么,好像沒看到有這個(gè)視圖,調(diào)試起來不方便。


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

查了下資料,fsd是RISC-V架構(gòu)里浮點(diǎn)數(shù)相關(guān)的指令。而CH32V203xx是V4B架構(gòu),不包含浮點(diǎn)數(shù)單元,那么為何編譯出來的代碼會(huì)包含浮點(diǎn)數(shù)相關(guān)的命令呢?


您好,可以根據(jù)MCU具體型號(hào)檢查一下ld文件以及啟動(dòng)文件的配置是否正確,如下圖。若方便,可以將你的工程發(fā)到我的郵箱具體看一下(lzs@wch.cn)。后面若有問題,也可以通過郵箱和我溝通

image.png


郵件已發(fā)送,另外想問下,MRS IDE里有沒有辦法進(jìn)行?;厮??看不到調(diào)用堆棧感覺調(diào)試起bug來很困難。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频