关于 中断的 疑问
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于 中断的 疑问
可以通过设置 flag,ESP_INTR_FLAG_LEVELx,当前可设置低 level 中断,即 1-3。
Re: 关于 中断的 疑问
1、我始终没有发现 即 1-3 这个 中断级别是在哪里加入的 ,还是随机分配的呢 。可否帮我摘录IDF 中的 一段 代码。
2、esp_intr_mark_shared(int intno, int cpu, bool is_in_iram)
Mark an interrupt as a shared interrupt.
This will mark a certain interrupt on the specified CPU as an interrupt that can be used to hook shared interrupt handlers to.
GPIO 例程里 只用了一个 hanlers ,是不是就是这里说的共享 ,但我又没发现调用该函数。
3、ESPS32S2中 在介绍中断 写道 分配多个外部中断源 Source_Xn 至 CPU 外部中断 指的是 esp_intr_alloc 函数中 If this is ESP_INTR_FLAG_SHARED, it will allocate a shared interrupt of level 1. ???
2、esp_intr_mark_shared(int intno, int cpu, bool is_in_iram)
Mark an interrupt as a shared interrupt.
This will mark a certain interrupt on the specified CPU as an interrupt that can be used to hook shared interrupt handlers to.
GPIO 例程里 只用了一个 hanlers ,是不是就是这里说的共享 ,但我又没发现调用该函数。
3、ESPS32S2中 在介绍中断 写道 分配多个外部中断源 Source_Xn 至 CPU 外部中断 指的是 esp_intr_alloc 函数中 If this is ESP_INTR_FLAG_SHARED, it will allocate a shared interrupt of level 1. ???
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于 中断的 疑问
1、有个描述中断属性的表:interrupt_descriptor_table,每个中断的 level 是固定的,软件会根据你设定的 level 到这里来找,找到合适的就使用那个 int,具体你看下函数 get_available_int
2、不是 share 的,gpio 的 isr 在 gpio_intr_service 里,会根据获取到的 gpio 的状态,再用 gpio_isr_handler_add 里注册的 handler 来处理
3、ESP_INTR_FLAG_SHARED 意思是说同一个 source 的中断,可以有多个 handler,中断发生后,可以依次处理这些 handler
2、不是 share 的,gpio 的 isr 在 gpio_intr_service 里,会根据获取到的 gpio 的状态,再用 gpio_isr_handler_add 里注册的 handler 来处理
3、ESP_INTR_FLAG_SHARED 意思是说同一个 source 的中断,可以有多个 handler,中断发生后,可以依次处理这些 handler
Re: 关于 中断的 疑问
看郁闷了 ,
我现在很希望知道 ,我不看API 函数,单 想将某个 IO 口 设置成 输入 ,上升沿 中断。
应该涉及操作哪几个寄存器。并注释下作用吧
我现在很希望知道 ,我不看API 函数,单 想将某个 IO 口 设置成 输入 ,上升沿 中断。
应该涉及操作哪几个寄存器。并注释下作用吧
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于 中断的 疑问
如果你对 GPIO 不是太熟悉,不建议直接操作寄存器。你现在使用相关 API 有什么问题?希望达到什么目的?
Re: 关于 中断的 疑问
我想对你们的芯片认真熟悉,怎么都不为过的。
我现在已经知道GPIO的中断配置是在GPIO对应的寄存器里。
但我对 ESP32S2中提到的 中断优先级 ,如何设置 一直处于 迷茫中。
你们 文档 48 页 提到的 94个中断源 ,只有简称 ,其对应的功能 ,在哪里获知?
我现在已经知道GPIO的中断配置是在GPIO对应的寄存器里。
但我对 ESP32S2中提到的 中断优先级 ,如何设置 一直处于 迷茫中。
你们 文档 48 页 提到的 94个中断源 ,只有简称 ,其对应的功能 ,在哪里获知?
-
- Posts: 786
- Joined: Wed Nov 14, 2018 8:45 am
Re: 关于 中断的 疑问
需要有探究的精神。
是否有详细阅读 TRM?https://www.espressif.com/sites/default ... ual_cn.pdf 的 中断矩阵 (INTERRUPT) 章节,当前 TRM 最新版本为 1.0。
你所说的 文档 48 页 ,是哪个文档的哪个版本?
是否有详细阅读 TRM?https://www.espressif.com/sites/default ... ual_cn.pdf 的 中断矩阵 (INTERRUPT) 章节,当前 TRM 最新版本为 1.0。
你所说的 文档 48 页 ,是哪个文档的哪个版本?
Re: 关于 中断的 疑问
ESP32-S2 技术参考手册 的 48 页。
可参考文档设置:https://docs.espressif.com/projects/esp ... alloc.html。
esp_intr_alloc_intrstatus函数中 写道
An ORred mask of the ESP_INTR_FLAG_* defines. These restrict the choice of interrupts that this routine can choose from. If this value is 0, it will default to allocating a non-shared interrupt of level 1, 2 or 3.
该函数中 对 1,2,3 优先级的 设置 是 如何实现的 ,是具体指定,还是 随机? 或是某种判断机制
可参考文档设置:https://docs.espressif.com/projects/esp ... alloc.html。
esp_intr_alloc_intrstatus函数中 写道
An ORred mask of the ESP_INTR_FLAG_* defines. These restrict the choice of interrupts that this routine can choose from. If this value is 0, it will default to allocating a non-shared interrupt of level 1, 2 or 3.
该函数中 对 1,2,3 优先级的 设置 是 如何实现的 ,是具体指定,还是 随机? 或是某种判断机制
Who is online
Users browsing this forum: No registered users and 46 guests