找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2694|回復(fù): 7
收起左側(cè)

stm32單片機(jī)程序跑幾次就死機(jī),所有寄存器值清0 怎么解決

[復(fù)制鏈接]
ID:302293 發(fā)表于 2022-3-17 11:01 | 顯示全部樓層 |閱讀模式
      所有寄存器值清0了,怎么解決死機(jī)
死機(jī).PNG
回復(fù)

使用道具 舉報(bào)

ID:1009400 發(fā)表于 2022-3-17 16:15 | 顯示全部樓層
排查法,在主程序中一個(gè)一個(gè)放開(kāi)你的程序,看看添加哪一段出現(xiàn)死機(jī)現(xiàn)象,如果是跑了很多個(gè)小時(shí)才出現(xiàn)死機(jī),肯定之前的備份程序有沒(méi)死機(jī)的,進(jìn)行對(duì)比
回復(fù)

使用道具 舉報(bào)

ID:302293 發(fā)表于 2022-3-17 18:49 | 顯示全部樓層
HardFault_Handler 怎么定位到函數(shù)中
回復(fù)

使用道具 舉報(bào)

ID:139866 發(fā)表于 2022-3-17 19:05 | 顯示全部樓層
在HardFault_Handler的while(1)那里打斷點(diǎn),當(dāng)程序停止時(shí),查看匯編代碼,看看上一條運(yùn)行的是什么代碼,或者“Call Stack Window”彈出“Call Stack + Locals”對(duì)話(huà)框。然后在對(duì)話(huà)框中右鍵選擇“Show Caller Code”,就會(huì)跳轉(zhuǎn)到出錯(cuò)之前的函數(shù)處,一般這個(gè)錯(cuò)誤跟內(nèi)存有關(guān),看看你的數(shù)組定義或者調(diào)用的時(shí)候有沒(méi)有問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:302293 發(fā)表于 2022-3-18 08:32 | 顯示全部樓層
  出錯(cuò)的地方會(huì)顯示,藍(lán)色小箭頭是吧
回復(fù)

使用道具 舉報(bào)

ID:302293 發(fā)表于 2022-3-30 09:53 | 顯示全部樓層
天ノ憶 發(fā)表于 2022-3-17 19:05
在HardFault_Handler的while(1)那里打斷點(diǎn),當(dāng)程序停止時(shí),查看匯編代碼,看看上一條運(yùn)行的是什么代碼,或 ...

死機(jī)怎么定位到出錯(cuò)處
回復(fù)

使用道具 舉報(bào)

ID:775776 發(fā)表于 2022-3-30 14:00 | 顯示全部樓層
暫停 一下看看程序停在 哪兒 一般都是越界鬧的
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-3-30 17:17 | 顯示全部樓層
不像是軟件問(wèn)題,如果軟件出問(wèn)題了,會(huì)進(jìn)入各種fault向量,R14(LR)指示的是出錯(cuò)的原始位置,F(xiàn)在所有寄存器都是零,軟件問(wèn)題做不到這一點(diǎn),一定是硬件問(wèn)題,比如PCB畫(huà)的稀巴爛,沒(méi)有電源去耦電容等等……
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表