acquiring bus in the dio task seems to result in the double release.
additional locking was added which could also help with the situation
This commit is contained in:
parent
c71ed05f8f
commit
ec1dc66f9b
1 changed files with 2 additions and 2 deletions
|
|
@ -416,7 +416,7 @@ static void IRAM_ATTR lora32_dio_task(void *arg) {
|
||||||
// wait for event over Queue
|
// wait for event over Queue
|
||||||
if(xQueueReceive(dio_event_queue, (void*)&lora, portMAX_DELAY) != pdPASS) continue;
|
if(xQueueReceive(dio_event_queue, (void*)&lora, portMAX_DELAY) != pdPASS) continue;
|
||||||
|
|
||||||
spi_device_acquire_bus(lora->spi, portMAX_DELAY);
|
//spi_device_acquire_bus(lora->spi, portMAX_DELAY);
|
||||||
|
|
||||||
// read IRQ flags
|
// read IRQ flags
|
||||||
uint8_t irqs = lora32_read_reg(lora, REG_IRQ_FLAGS);
|
uint8_t irqs = lora32_read_reg(lora, REG_IRQ_FLAGS);
|
||||||
|
|
@ -426,7 +426,7 @@ static void IRAM_ATTR lora32_dio_task(void *arg) {
|
||||||
ESP_LOGD(TAG, "clearing irqs");
|
ESP_LOGD(TAG, "clearing irqs");
|
||||||
lora32_write_reg(lora, REG_IRQ_FLAGS, irqs);
|
lora32_write_reg(lora, REG_IRQ_FLAGS, irqs);
|
||||||
|
|
||||||
spi_device_release_bus(lora->spi);
|
//spi_device_release_bus(lora->spi);
|
||||||
|
|
||||||
// TODO handle header validation
|
// TODO handle header validation
|
||||||
if((irqs & IRQ_RX_DONE) == IRQ_RX_DONE) {
|
if((irqs & IRQ_RX_DONE) == IRQ_RX_DONE) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue