dfli 发表于 2023-6-7 18:36

MCHP Harmony V2.06 系统定时器故障 SYSZ-DEBUG_BreakPoint()

static SYS_TMR_HANDLEhmiAgtTimer;
hmiAgtTimer = SYS_TMR_DelayMS( 100 );
if(NULL != hmiAgtTimer){
   HmiAgt_SetState(pHACtx, HMI_AGT_STATE_WAIT); // 去:等待状态
}
if(SYS_TMR_DelayStatusGet(hmiAgtTimer)){
   HmiAgt_SetState(pHACtx, HMI_AGT_STATE_IDLE); // 去:闲置状态
}
用ICD4调试,PIC32MZ0512EF0064,定时还未超时,就出现:
while (1)
{
    SYS_DEBUG_BreakPoint();
}
CallStack 如下:
_general_exception_handler()(位于d:/microchip/harmonyv2_06/apps/mp_sc_190327/imware/srclsystem_configldefaull/system_exceptions.c:137)
Runtime exception (near)PC address 0x9d00a4b4 in function:SYS_TMR_Tasks()(位于d/microchip/harmonyM2_06/firamework/systemtmr/srclsys_tmr.c:698)
从695行开始:
pClient = sClientObjects + 0;
    for ( ix = 0; ix < sizeof(sClientObjects)/sizeof(*sClientObjects); ix++, pClient++ )
    {
      if ( pClient->isrState == SYS_TMR_CLIENT_ISR_MARK_DEL)
      {
            _SYS_TMR_ClientDelete(pClient);
      }
      else if(pClient->isrState == SYS_TMR_CLIENT_ISR_MARK_INACTIVE)
      {
            pClient->isrEnable = 0;
            pClient->currState = SYS_TMR_CLIENT_INACTIVE;
      }
    }

哪里出问题了?

小灵通2018 发表于 2023-6-7 22:19

没看明白。

dfli 发表于 2023-6-8 21:29

感觉和程序存储器有关系。
添加空语句:Nop();
如下:
Nop();
Nop();
Nop();
Nop();
最多4个,添加到其中某一个,程序就运行正常了:一个串口发送数据,几个定时器启动一段延时。
非常奇怪:
再添加一段代码,又是:SYS_DEBUG_BreakPoint(); 又是SYS_TMR_Task()任务异常。
再添加几个Nop(); 可能又正常了。

啥原因?

dfli 发表于 2023-6-8 21:31

dfli 发表于 2023-6-8 21:32

_general_exception_handler()(位于d/microchip/harmonyN2_06/apps/mp_Sc_190327/irmware/srclsystem_config/default/system_exceptions.c: 137)
Runtime exception (near)PC address 0x⁹d0080d8 in function: SYS_TMR_Tasks()(位于d:microchip/harmonyv2_06fframework/system/tmr/srclsys_tmr.c:730)

dfli 发表于 2023-6-8 21:34

_general_exception_handler()(位于d/microchip/harmony/V2_06/apps/np_sc_190327/firmware/src/system_config/default/system_exceptions.c: 137)
Runtime exception (near)PC address 0x9d0080d8 in function: SYS_TMR_Tasks()(位于d:microchip/harmonyv2_06/framework/system/tmr/src/sys_tmr.c:730)
页: [1]
查看完整版本: MCHP Harmony V2.06 系统定时器故障 SYSZ-DEBUG_BreakPoint()