Michael

Results 19 comments of Michael

Issue closed. Feel free to reopen if you have further clues.

Please try this one: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/intr_alloc.html#c.ESP_INTR_FLAG_LEVEL3 when calling https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/gpio.html#_CPPv417gpio_isr_registerPFvPvEPviP17gpio_isr_handle_t But as you can see, BT may use higher level (LEVEL4 in some cases), so maybe `Component config -> Bluetooth -> Controller...

@jankens 感谢你的提问 硬件设计上为了实现不间断的发送以提高吞率,采用了这种递增计数器的方式。这个计数器无需复位,否则每次复位都需要传输暂停,引入复杂的同步机制,会降低吞吐率。计数中显示的值是历史上曾经挂载过的buffer数量,减去host端已经消耗的数量可以得到剩余数量。 出于硬件成本考量,这个计数器被设计为 12 位 [27:16],因此同一寄存器的其他 20 位与此问题无关,可忽略( https://github.com/espressif/esp-idf/blob/master/components/soc/esp32/include/soc/host_struct.h#L77 )。如果阅读代码你可以看到代码中 >> 16 的那一行就是在取出这有效的 12 bit。 每当计数器溢出 4096 的边界,需要一个溢出的处理,如下: 已消耗: 8000 当前值: 100 (历史曾经挂载 4096 * 2 + 100=8292) 实际剩余可用:...

@jankens 我现在能想到的一点是,你上面提到的“超过4096以后变为0”这个指的是remain的数量对吗? 由于我们的计数器只有12位,4096 种数值状态表示剩下buffer = 0~4095 的4096种情况,无法表示超过4095的情况。所以不允许slave端同时挂载超过4095个 buffer。请确认slave端挂载的buffer数量不要超过限制。 另外,允许同时挂载的主要目的是提高吞率,避免软件处理buffer时硬件无buffer可用。但挂这么多个明显超出了正常需求,少挂一点不会影响性能的。

Issue closed. Feel free to reopen if you still have questions.

Could you provide your code that can produce this problem? And btw, check if I understand correctly: 1. The issue only happens when new i2c driver AND rev Y. Not...

Hi @italocjs , Thanks for the report. Have you tried latest IDF master to see if the issue exists? Maybe it's known issue that we have resolved so far. And...

Hi @italocjs , @agzzzz , @kurozz , @therealergo , I tried with @agzzzz 's test (thanks for detailed reproducing steps), with one only modification - change ADC task Affinity to...