Hi team,
The customer has referenced the GPIO-related code in main_led_blink.c, but the GPIO interrupts still do not work successfully. The code is as follows:
//Configure GPIO0_99 (W23) as an interrupt typedef enum { ENUM_TEST_GPIO_INT_FUN_W23 = 0, }GPIO_CTL; GPIO_PinConfig gpioPinConfigs[] = { GPIO_DEVICE_CONFIG(0, 99) | GPIO_CFG_IN_INT_BOTH_EDGES | GPIO_CFG_INPUT, }; GPIO_CallbackFxn gpioCallbackFunctions[] = { NULL, }; GPIO_v0_Config GPIO_v0_config = { gpioPinConfigs, gpioCallbackFunctions, sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig), sizeof(gpioCallbackFunctions) / sizeof(GPIO_CallbackFxn), 0x8U }; app_init() { boardCfg = BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_UART_STDIO | BOARD_INIT_MODULE_CLOCK; Board_init(boardCfg); int pinNum = 99; int bankNum = pinNum/16; //bankNum=99/16 Is this calculation correct? GPIO_v0_HwAttrs gpio_cfg; GPIO_socGetInitCfg(bankNum, &gpio_cfg); //IDX uses the bankNum variable, is it correct? gpio_cfg.baseAddr = CSL_GPIO6_BASE; //Value for CSL_GPIO6_base source bankNum=0 gpio_cfg.intCfg[pinNum].intNum = 256 + bankNum; //256 referring to the values in other source code, don't know why this is set to 256? gpio_cfg.intCfg[pinNum].intcMuxNum = INVALID_INTC_MUX_NUM; //Refer to the main_led_blink.c configuration gpio_cfg.intCfg[pinNum].intcMuxInEvent = 0; //Refer to the main_led_blink.c configuration gpio_cfg.intCfg[pinNum].intcMuxOutEvent = 0; //Refer to the main_led_blink.c configuration GPIO_socSetInitCfg(bankNum, &gpio_cfg); //IDX uses the bankNum variable, is it correct? GPIO_init(); GPIO_setCallback(ENUM_TEST_GPIO_INT_FUN_W23, AppGpioCallbackFxn_W23); GPIO_enableInt(ENUM_TEST_GPIO_INT_FUN_W23); }
Could you help check this case? Thanks.
Best Regards,
Cherry