Other Parts Discussed in Thread: SYSCONFIG
器件型号: AM2612
主题: SysConfig 中讨论的其他器件
您好:
我正在使用以下环境:
器件:AM261x LaunchPad
SDK:motor_control_sdk_am261x_10_02_00_07
IDE:CCS 12.8.1
我们旨在将 GPIO124 的中断分配给定制电路板上 ICSSG0-PRU1 的系统事件 62。
目前、如下图所示、R5F 应用充当中间体并向 ICSS0-PRU1 通知系统事件 62。
如果我们想直接从 GPIO124 通知 ICSSG-PRU1、而不使用 R5F 应用作为中间人、则需要进行哪些更改?
GPIO124 在 SysConfig 中定义如下:
引脚方向:输入
触发器类型:下降沿
启用中断配置:关闭
上拉/下拉:无上拉
压摆率:低
反转:关闭
特性:同步
GPIO INT XBAR 配置如下:
XBAR 输出:GPIO_MUX_124
XBAR 实例:GPIO_INT_XBAR_VIM_MODULE0_0
在 R5F 应用中:
HwiP_Params_init (&hwiPrms);
hwiPrms.intNum = 164;
hwiPrms.callback = irq164_handler;
hwiPrms.args = 0;
hwiPrms.isPulse = true;
hwiPrms.isFIQ = false;
链路状态 = Hwip_construct (&gPruIcssHwiObject0、&hwiPrms);
DebugP_assert (status == SystemP_Success);
HwiP_enableInt (164);
isrpinNum = 124;
bankNum = GPIO_GET_BANK_INDEX (isrpinNum);
gpioBaseAddr =(uint32_t) AddrTranslateP_getLocalAddr (CSL_GPIO0_U_BASE);
GPIO_bankIntrEnable (gpioBaseAddr、bankNum);
在中断处理程序中:
void irq164_handler (void *args)
{
uint32_t isrpinNum =(uint32_t) 参数;
uint32_t bankNum = GPIO_GET_BANK_INDEX (isrpinNum);
uint32_t intrStatus;
uint32_t gpioBaseAddr;
gpioBaseAddr =(uint32_t) AddrTranslateP_getLocalAddr (CSL_GPIO0_U_BASE);
GPIO_bankIntrDisable (gpioBaseAddr、bankNum);
/*获取和清除组中断状态*/
IntrStatus = GPIO_getBankIntrStatus (gpioBaseAddr、bankNum);
GPIO_clearBankIntrStatus (gpioBaseAddr、bankNum、IntrStatus);
/*通知 PRU1 */
PRUICSS_sendEvent (gPruIcs0Handle、ICSS_INTC_EVENT_62);
PRUICSS_clearEvent (gPruIcs0Handle、ICSS_INTC_EVENT_62);
/*启用中断*/
GPIO_bankIntrEnable (gpioBaseAddr、bankNum);
}

