[FL-2219, FL-2251] System, FuriCore, FuriHal: various bug fixes and improvements (#986)

* Replace irq shenanigans with critical section
* Power: halt system on power off instead of crash.
* Gui: properly handle input event on NULL current_view
* FuriHal: correct gpio configuration sequence
* FuriHal: cleanup uart initialization. Makefile: allow to disable thread support.
* Loader: improve locking, fix simultaneous app start crash, full command line args support for gui apps, more consistent insomnia
* Loader: correct spelling
* FuriHal: increase gpio configuration readability
* FuriHal: correct gpio configuration error when mode is GpioModeEventRiseFall
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
This commit is contained in:
あく
2022-02-10 14:20:50 +03:00
committed by GitHub
parent 6b78a8ccfe
commit df2d1ad13f
35 changed files with 1145 additions and 1962 deletions

View File

@@ -258,7 +258,7 @@ bool OneWireSlave::bus_start(void) {
if(device == nullptr) {
result = false;
} else {
__disable_irq();
FURI_CRITICAL_ENTER();
pin_init_opendrain_in_isr_ctx();
error = OneWireSlaveError::NO_ERROR;
@@ -274,7 +274,7 @@ bool OneWireSlave::bus_start(void) {
}
pin_init_interrupt_in_isr_ctx();
__enable_irq();
FURI_CRITICAL_EXIT();
}
return result;
@@ -305,4 +305,4 @@ void OneWireSlave::exti_callback(void* _ctx) {
//FALL event
pulse_start = DWT->CYCCNT;
}
}
}