ESP32 中断控制

jcl709905683
Posts: 7
Joined: Sat Jul 10, 2021 10:31 am

ESP32 中断控制

Postby jcl709905683 » Sat Jul 10, 2021 11:35 am

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上

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: ESP32 中断控制

Postby ESP_Gargamel » Mon Jul 12, 2021 2:46 am

当前没有接口暴露出来进行设置,但 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 126 guests