打印
[PIC32/SAM]

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

[复制链接]
2388|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 | 只看该作者

使用特权

评论回复
5
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)

使用特权

评论回复
6
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

粉丝