请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LP-AM243主题:SysConfig 中讨论的其他器件
工具/软件:
您好!
我需要通过中断来同步 R5F 内核和 PRU 之间的活动。
我已使用 SysConfig 配置 INTC、如下所示:


R5 上运行的代码的相关部分:
{
...
gPruIcss0Handle = PRUICSS_open(CONFIG_PRU_ICSS0);
PRUICSS_registerIrqHandler(gPruIcss0Handle,
0,
16,
16,
0,
(void*) &finished);
PRUICSS_intcInit(gPruIcss0Handle, &icss0_intc_initdata);
status = PRUICSS_initMemory(gPruIcss0Handle, PRUICSS_DATARAM(PRUICSS_PRU0));
DebugP_assert(status != 0);
status = PRUICSS_initMemory(gPruIcss0Handle, PRUICSS_DATARAM(PRUICSS_PRU1));
DebugP_assert(status != 0);
status = PRUICSS_loadFirmware(gPruIcss0Handle, PRUICSS_PRU0, PRU0Firmware_0, sizeof(PRU0Firmware_0));
DebugP_assert(SystemP_SUCCESS == status);
status = PRUICSS_loadFirmware(gPruIcss0Handle, PRUICSS_PRU1, PRU1Firmware_0, sizeof(PRU1Firmware_0));
DebugP_assert(SystemP_SUCCESS == status);
PRUICSS_sendEvent(CONFIG_PRU_ICSS0, 0); // this is repeatedly called in application code
...
}
void finished(void)
{
PRUICSS_clearEvent(CONFIG_PRU_ICSS0, 1);
DebugP_log("ISR Fired \r\n");
...
}
在 PRU 上运行的代码的相关部分:
mainLoop:
...
ldi r0.w0, 0x21
mov r31, r0
l_wait_for_ARM:
qbbs l_start, r31, 30
jmp l_wait_for_ARM
l_start:
...
qba mainLoop
我没有看到控制台上出现“ISR 已触发“、这意味着 ISR 未触发。
请帮助我解决此问题。
此外、是否有任何展示 INTC 配置的示例项目?
谢谢、
德鲁瓦