Part Number: AM2431
I'm having trouble getting the GPIO ISR to fire.
I'm following the gpio_input_interrupt_am243x example code, except I want to use pin GPIO0_76
Is there something I'm not configuring? Do I have the correct intNum?
This is what my code looks like
void callback(void *args);
void gpio_hal_configure_interrupt(void) { int32_t retVal; uint32_t gGpioBaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CSL_GPIO0_BASE) uint32_t pinNum = 76; HwiP_Params hwiPrms; static HwiP_Object gGpioHwiObject; GPIO_setDirMode(gGpioBaseAddr, pinNum, GPIO_DIRECTION_INPUT); GPIO_setTrigType(gGpioBaseAddr, pinNum, GPIO_TRIG_TYPE_FALL_EDGE); GPIO_bankIntrEnable(gGpioBaseAddr, GPIO_GET_BANK_INDEX(pinNum)); /* Register pin interrupt */ HwiP_Params_init(&hwiPrms); hwiPrms.intNum = CSLR_R5FSS0_CORE0_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_8; hwiPrms.callback = &callback; hwiPrms.args = (void *) pinNum; retVal = HwiP_construct(&gGpioHwiObject, &hwiPrms); assert(retVal == SystemP_SUCCESS);}
void callback(void *args){ uint32_t pinNum = (uint32_t)args; uint32_t intrStatus, pinMask; pinMask = GPIO_GET_BANK_BIT_MASK(pinNum); uint32_t gGpioBaseAddr = (uint32_t) AddrTranslateP_getLocalAddr(CSL_GPIO0_BASE) /* Get and clear bank interrupt status */ intrStatus = GPIO_getBankIntrStatus(gGpioBaseAddr, GPIO_GET_BANK_INDEX(pinNum)); GPIO_clearBankIntrStatus(gGpioBaseAddr, GPIO_GET_BANK_INDEX(pinNum), intrStatus); printf("Interrupt"); }