Browse Source

HAL_ChibiOS: fixed a race in DShot code

this fixes a problem found by Daniel Met with the copter 3.6 beta
release
mission-4.1.18
Andrew Tridgell 6 years ago
parent
commit
8c391291a3
  1. 4
      libraries/AP_HAL_ChibiOS/RCOutput.cpp

4
libraries/AP_HAL_ChibiOS/RCOutput.cpp

@ -815,7 +815,9 @@ void RCOutput::dma_allocate(Shared_DMA *ctx) @@ -815,7 +815,9 @@ void RCOutput::dma_allocate(Shared_DMA *ctx)
for (uint8_t i = 0; i < NUM_GROUPS; i++ ) {
pwm_group &group = pwm_group_list[i];
if (group.dma_handle == ctx) {
chSysLock();
dmaStreamAllocate(group.dma, 10, dma_irq_callback, &group);
chSysUnlock();
}
}
}
@ -828,7 +830,9 @@ void RCOutput::dma_deallocate(Shared_DMA *ctx) @@ -828,7 +830,9 @@ void RCOutput::dma_deallocate(Shared_DMA *ctx)
for (uint8_t i = 0; i < NUM_GROUPS; i++ ) {
pwm_group &group = pwm_group_list[i];
if (group.dma_handle == ctx) {
chSysLock();
dmaStreamRelease(group.dma);
chSysUnlock();
}
}
}

Loading…
Cancel
Save