主题中讨论的其他器件:TDA4VH
工具与软件:
您好、TI 专家!
我们正在尝试创建一个简单的 ISR、当特定的 GPIO (11)从1变为0时、该 ISR 将在 RTOS 环境中触发、与 test_led 示例类似。
它是基于 TDA4VH 的定制板。 我们使用的是 Processor SDK j784s4软件版本10。
相关代码如下所示:
#######################################################################################
GPIO_PinConfig gpioPinConfigs[] = {
/* Input pin : DSI3 INTn */
// PIN_GPIO0_11 | GPIO_CFG_IN_INT_FALLING // we tried both versions
PIN_GPIO0_11 | GPIO_CFG_IN_INT_LOW
};
GPIO_CallbackFxn callbacks[] = {
callbackName
};
GPIO_v0_Config GPIO_v0_config = {
gpioPinConfigs,
callbacks,
sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig),
1,
0
};
...
volatile uint32_t gpio_uss_intr_triggered = 0;
static void callbackName(void)
{
gpio_uss_intr_triggered = 1;
}
...
GPIO_v0_HwAttrs gpio_cfg;
GPIO_socGetInitCfg(0, &gpio_cfg);
gpio_cfg.baseAddr = CSL_GPIO0_BASE;
(gpio_cfg.intCfg[11]).intcMuxNum = -1;
(gpio_cfg.intCfg[11]).intcMuxInEvent = -1;
(gpio_cfg.intCfg[11]).intcMuxOutEvent = -1;
GPIO_socSetInitCfg(0, &gpio_cfg);
GPIO_init();
App_ConsolePrintf("Registering ISR\n");
GPIO_setCallback(1, callbackName);
GPIO_enableInt(0);
...
//GPIO is triggered, we read it
GPIO_11_INTn = GPIOPinRead_v0(CSL_GPIO0_BASE, 11);
while (gpio_uss_intr_triggered == 0U)
{
Osal_delay(10);
}
#######################################################################################
在此之后、代码会永远卡住。 您能告诉我们是错过了什么还是做错了什么吗?
此致、
Stefan PIjetlovic