Forked from
card10 / firmware
1038 commits behind the upstream repository.

rahix
authored
Sometimes during initialization, one `log_msg()` intercepts another one,
leading to a whole lot of weird issues in other modules (like I2C). I
suspect this to be memory corruption of some kind. The issues can be
fixed by performing serial prints in a critical section, thus ensuring
atomicity of prints. Note that this does not mean log messages will not
interleave.
The CDC-ACM and BLE-Serial writes cannot be put into a critical section
and are thus a point where this code can still fail. For now, however,
this fix ensures the race-conditions during startup, where USB and BLE
are not yet running, don't happen anymore.
Signed-off-by:
Rahix <rahix@rahix.de>
Name | Last commit | Last update |
---|---|---|
.. | ||
api | ||
ble | ||
fs | ||
l0der | ||
modules | ||
FreeRTOSConfig.h | ||
cdcacm.c | ||
cdcacm.h | ||
descriptors.h | ||
epicardium.h | ||
main.c | ||
meson.build | ||
support.c |