Closed podhrmic closed 2 years ago
I still feel like there ought to be something we can do to reduce the Linux boot time, like streamlining the Debian image or making some sort of memory image of it to load from flash. But regardless of that, here's another idea: what if we actually have the infotainment servers run on FPGA when available? That is, if the infotainment FPGAs aren't up and running, or otherwise aren't working, we detect it (which we can already because of heartbeats) and fall back to the "simulated or no infotainment" option while we're rebooting them in the background.
More generally, once these things are implemented, I think we should be able to smoothly fall back to "simpler" ones in the presence of failures, until a power cycle occurs.
That sounds reasonable - you can start using the demonstrator as soon as Ignition boots up, and then simply switch the op modes as things boot. That combined with some sort of notification system sounds actually pretty cool.
Teensy UART output:
HH:MM:SS.SSS throttle_raw: $DECVAL
HH:MM:SS.SSS brake_raw: $DECVAL
HH:MM:SS.SSS shifter_gear: $HEXVAL
This needs to be parsed by the ignition component on SimPC
Implemented in #1268
This is how the demonstrator functionality can be layered:
Minimal / Simualtion only
Medium / Critical systems only
Full functionality
The ordering is strictly Minimal < Medium < Full, so if FreeRTOS fails (
Medium
), the only possible switch is toMinimal
even though the debian targets are happy.Have to think about what happens if we keep targets running/don't terminate them properly (especially wrt. the infotainment). Perhaps ensure a proper termination?