您好!
目前我们的程序会有100%死机的问题,不管是休眠或者不休眠,都是35小时就会死机。程序开启了看门狗,看门狗没有动作。正常使用,随意操作,都是正常的,正常使用一天都是没问题的,
死机都是发生在没人操作的时候,休眠或者唤醒过程中没有发生死机问题。
使用的SDK:10.0.8.105,使用了BLE和emwin
请问我们可以从哪些方面测试?(哪些方面还可以引起死机的问题)
或者是可以有哪几种调试方法来定位死机的原因?
谢谢!
我们现在怀疑死机的原因有如下几点:
1.程序逻辑问题,测试了休眠时把所有自己新建的任务都挂起,把4个外部中断禁用,4个rtc中断给禁用,只保留一个外部中断
唤醒,还是会同样的情况死。
2.栈溢出问题,测试了正常的程序,一直处于休眠状态下,使用rtc的中断,10分钟打印一次任务的剩余栈的大小。下面是刚开机和死机前
任务使用栈的情况
还有一个现象就是休眠时电流是180ua,死机时电流是7ma,这个测了两次,都是这样的。
刚开机时程序任务的执行情况
[18:02:59.821]收←◆ ============================================= name status pro stack num vTaskRTC X 4 854 11 IDLE R 0 50 2 Tmr Svc B 6 56 3 AD_SNC S 1 322 6 SPSKEY S 1 413 19 bleM S 2 46 7 GDI_task S 1 459 21 LCDC_Demo S 2 12503 15 vTaskKeyRespons S 4 1954 8 vTaskKeyScan S 3 1001 9 vTaskNFC S 2 427 12 vTaskCharge S 2 17 10 vTaskBeep S 2 230 13 vTaskReceiveNot S 2 420 16 vTaskLCD_BL S 4 1958 14 bleA S 3 159 4 SPS Profile S 1 6269 17 SPSREPLY S 1 394 18 AD_IRQ_SNC S 1 31 5
name counter use rate vTaskRTC 1927 <1% SPS Profile 13779 <1% IDLE 17545935 88% SPSKEY 51 <1% bleM 107 <1% GDI_task 5348 <1% LCDC_Demo 1484572 7% vTaskKeyRespons 1009 <1% vTaskKeyScan 9228 <1% vTaskNFC 686338 3% vTaskCharge 417 <1% vTaskBeep 202 <1% vTaskReceiveNot 54 <1% vTaskLCD_BL 127 <1% bleA 1582 <1% SPSREPLY 2870 <1% Tmr Svc 14386 <1% AD_IRQ_SNC 2 <1% AD_SNC 158 <1%
=============================================
死机前程序任务的执行情况
[04:41:58.699]收←◆ ============================================= name status pro stack num vTaskRTC X 4 772 11 IDLE R 0 50 2 Tmr Svc B 6 53 3 AD_SNC S 1 322 6 SPSKEY S 1 413 19 SPSREPLY S 1 394 18 GDI_task S 1 455 21 LCDC_Demo S 2 12503 15 vTaskKeyRespons S 4 1954 8 vTaskKeyScan S 3 999 9 bleA S 3 159 4 vTaskNFC S 2 427 12 vTaskCharge S 2 17 10 bleM S 2 46 7 SPS Profile S 1 6269 17 vTaskBeep S 2 230 13 vTaskReceiveNot S 2 413 16 vTaskLCD_BL S 4 1951 14 AD_IRQ_SNC S 1 31 5
name counter use rate vTaskRTC 906107 <1% IDLE 4102486923 99% Tmr Svc 319737 <1% SPSKEY 51 <1% SPSREPLY 5738 <1% GDI_task 8357 <1% LCDC_Demo 2326761 <1% vTaskKeyRespons 1566 <1% vTaskKeyScan 14412 <1% bleA 18151 <1% vTaskNFC 1055365 <1% vTaskCharge 707 <1% bleM 2063 <1% SPS Profile 99846 <1% vTaskBeep 247 <1% vTaskReceiveNot 170 <1% vTaskLCD_BL 513 <1% AD_IRQ_SNC 2 <1% AD_SNC 158 <1%
Hi ren0zhe,
请做以下测试定位是硬件还是软件问题 1. 死机后电流7mA的状态下有没有看监控P0_9串口是否有打印信息输出 2. 在你的板子上运行pxp_reporter例程,观察是否会发生同样的死机问题 3. 在695开发板上运行你的程序,观察是否会发生同样的死机问题
BR,
Kevin