[PIC32/SAM] MCHP Harmony V2.06 系统定时器故障 SYSZ-DEBUG_BreakPoint()

[复制链接]
7151|5
 楼主| dfli 发表于 2023-6-7 18:36 | 显示全部楼层 |阅读模式
static SYS_TMR_HANDLE  hmiAgtTimer;
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)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部