[FL-2392] FuriHal: refactor interrupts subsystem (#1066)

* FuriHal: refactor interrupts subsystem

* Furi,FuriHal: gather all ISRs under interrupt API, improve crtitical section and cleanup garbage

* FuriHal: mirgate ipcc and hsem to LL

* Format Sources

* FuriHal,BleGlue: move to new critical section

* Format Sources

* FuriHal: correct flash locking

* FuriHal: replace critical section with interrupt disable in OS routine, minor fixex
This commit is contained in:
あく
2022-03-29 20:37:23 +03:00
committed by GitHub
parent bdba15b366
commit 489caa8e77
27 changed files with 360 additions and 715 deletions

View File

@@ -115,11 +115,11 @@ void vPortSuppressTicksAndSleep(TickType_t expected_idle_ticks) {
}
// Stop IRQ handling, no one should disturb us till we finish
FURI_CRITICAL_ENTER();
__disable_irq();
// Confirm OS that sleep is still possible
if(eTaskConfirmSleepModeStatus() == eAbortSleep) {
FURI_CRITICAL_EXIT();
__enable_irq();
return;
}
@@ -136,7 +136,7 @@ void vPortSuppressTicksAndSleep(TickType_t expected_idle_ticks) {
}
// Reenable IRQ
FURI_CRITICAL_EXIT();
__enable_irq();
}
void vApplicationStackOverflowHook(TaskHandle_t xTask, char* pcTaskName) {