引言
STM32 G0 系列產(chǎn)品具有豐富的外設(shè)和強(qiáng)大的處理性能以及良好的低功耗特性,被廣泛用于各類工業(yè)產(chǎn)品中,包括一些需要低功耗需求的應(yīng)用。
問(wèn)題描述
用戶使用 STM32G0B1 作為汽車多媒體音響控制器的控制芯片,用來(lái)作為收音機(jī)頻道存貯和各種檢測(cè)控制。在實(shí)驗(yàn)室條件下模擬汽車頻繁打火的情形進(jìn)行測(cè)試,連續(xù)工作 72 小時(shí)實(shí)驗(yàn)中,進(jìn)入 STOP 模式后,會(huì)出現(xiàn)無(wú)法再繼續(xù)運(yùn)行的情況(屏幕沒(méi)有顯示輸出,外部中斷無(wú)反應(yīng))。
問(wèn)題重現(xiàn)
通常調(diào)查問(wèn)題時(shí)采取調(diào)試監(jiān)控的方式。但是用戶產(chǎn)品是在檢測(cè)外部掉電時(shí),測(cè)外部電壓(汽車 ACC 電源,轎車 12V)下降后,立刻進(jìn)入低功耗模式,然后通過(guò) RTC 和外部中斷(PC13 下降沿觸發(fā)即汽車打火上電)喚醒 MCU 繼續(xù)工作。
那么既然是已經(jīng)進(jìn)入低功耗模式,并且在幾十個(gè)小時(shí)內(nèi)才會(huì)出現(xiàn)故障,通常的用 ST-LINK 在線調(diào)試方式顯然很困難重現(xiàn)問(wèn)題,即使幸運(yùn)的遇到了故障,也很容易錯(cuò)過(guò)引起故障的代碼部分,看到了現(xiàn)象卻無(wú)法定位。
在此種情況下,正面分析出問(wèn)題的可能性極小,況且用戶代碼量超過(guò) 200k。這時(shí)候采用排除法不失為一種可行的辦法。通過(guò)增加測(cè)試樣本數(shù)量,進(jìn)行并行測(cè)試提高定位效率。 在實(shí)踐中,根據(jù)代碼結(jié)構(gòu)時(shí)序采用提高觸發(fā)喚醒頻率的方式減少故障發(fā)生的時(shí)間。