I am trying to write my own GPIO ISR handler for use with gpio_isr_register() and I have run into something interesting. It looks like the ISR that is installed if you run gpio_install_isr_service() uses gpio_hal_get_intr_status() which ultimately resolves down to a read of either GPIO_ACPU_INT_REG or GPIO_PCPU_INT_REG depending on the argument gpio_context.isr_core_id. If I'm writing my own function to pass to gpio_isr_register, then I don't have access to the gpio_context variable because it's declared static inside of components/driver/gpio.c so I don't know which register to read. How am I supposed to read the interrupt status when implementing my own ISR?
I also saw that there is a GPIO_STATUS_REG. How does this differ from GPIO_ACPU_INT_REG and GPIO_PCPU_INT_REG?
GPIO_STATUS_REG vs GPIO_ACPU_INT_REG and GPIO_PCPU_INT_REG
Re: GPIO_STATUS_REG vs GPIO_ACPU_INT_REG and GPIO_PCPU_INT_REG
I'm still interested in any information that is available on this subject.
Who is online
Users browsing this forum: No registered users and 266 guests