ESP32如何控制外部中断触发在指定core上?
在gpio_example_main.c历程中 按照参考手册将APP_GPIO_INTERRUPT_APP_MAP_REG寄存器配置为0x0d后 在isr中查询
DPORT_PRO_INTR_STATUS_0_REG寄存器的值为0x30400000
DPORT_APP_INTR_STATUS_0_REG寄存器的值为0x30000000
gpio中断任然触发在PROCORE上
应该如何配置才能使中断触发在APPCORE上
ESP32 中断控制
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: ESP32 中断控制
当前没有接口暴露出来进行设置,但 gpio driver 内部是有相似功能,如你需要,可以略做修改,如在 driver/gpio.c 里加一个函数:
Code: Select all
esp_err_t gpio_intr_enable_new(gpio_num_t gpio_num, uint32_t core_id)
{
GPIO_CHECK(GPIO_IS_VALID_GPIO(gpio_num), "GPIO number error", ESP_ERR_INVALID_ARG);
portENTER_CRITICAL(&gpio_context.gpio_spinlock);
gpio_context.isr_core_id = core_id;
portEXIT_CRITICAL(&gpio_context.gpio_spinlock);
return gpio_intr_enable_on_core (gpio_num, gpio_context.isr_core_id);
}
Who is online
Users browsing this forum: No registered users and 123 guests