主题:AM6421中讨论的其他器件
工具/软件:
您好、
我使用的是 AM6421。 使用仿真器进行调试时、有时软件触发的 ISR 无法正确触发。
发生这种情况时、需要关闭并打开控制板的电源、重新连接目标、重新加载 sciclient、重新加载工程、然后可以正确触发软件触发的 ISR。
我的问题是:
1、是什么导致软件触发的 ISR 无法正确触发?
2、如何解决问题? 关闭电源并打开电源、重新加载 sciclient 不是一种有效的方法。
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、
我使用的是 AM6421。 使用仿真器进行调试时、有时软件触发的 ISR 无法正确触发。
发生这种情况时、需要关闭并打开控制板的电源、重新连接目标、重新加载 sciclient、重新加载工程、然后可以正确触发软件触发的 ISR。
我的问题是:
1、是什么导致软件触发的 ISR 无法正确触发?
2、如何解决问题? 关闭电源并打开电源、重新加载 sciclient 不是一种有效的方法。
谢谢!
尊敬的 Tushar:
SDK 版本为10.0.0.20。
SDK 中不包含测试工程。
在测试项目中、配置了2个中断、ISR1是计时器 ISR;ISR2是基于 interrupt_profiling 示例的软件触发 ISR;ISR2是在 ISR1中触发的软件;ISR1优先级为2、ISR2优先级为4;
该工程在 R51_0内核 nortos 上运行;
ISR1似乎始终正常工作;
ISR2的 BUR、有时 ISR2可以正确触发、有时无法正确触发; 需要关闭并重新启动整个系统才能正确触发 ISR2。
尊敬的 Tushar:
很抱歉、我无法提供测试项目的源代码。 但 ISR1和 ISR2如下所示。
ISR1是计时器触发的、配置如下:
void main()
{
init();
HwiP_Params_init (&hwiParams);
hwiParams.intNum = PING_INT_NUM;
hwiParams.priority = 6;
hwiParams.callback = ISR2;
HwiP_construct (&gPingHwiObj、&hwiParams);
}
void ISR1 (void * args)
{
cnt1++;
IF (cnt1 =200)
{
HwiP_POST (PING_INT_NUM);
cnt1 = 0;
}
func1();
}
使 ISR2失效(void)
{
cnt2++;
func2();
}