Minimal System Reference Topologies #4791
Replies: 2 comments
|
I agree there is value in having a minimal system reference for tiny platforms. I have done some work recently on getting ATmega128 running on newer versions of F Prime, building on the work we did two years ago which saw a basic F Prime 3.4.3 deployment successfully running. Two years later, that build environment seems to have stopped working, possibly due to CMake changes, although I haven't quite gotten to the bottom of what changed. Now it tries to compile unused components which reference libraries unavailable to the platform, but I was able to work around this with some modifications to the I still have a bit of work to do there, and one big remaining question is whether it's even worth it to try to get the ATmega128 running on F Prime 4. I think 3.6.4 is doable, but it looks like many more modifications would be required to get v4 working. It seems that every new version of F Prime makes the assumption that more resources are available to it, which in some sense makes sense due to the features being added on over time. But many if not all of these features could be added without assuming things like U64 type support. I'm not sure if it's a losing battle, but I would like to see continued support for these tiny platforms. If support for these platforms is going to continue, it will probably need to be done with a simpler topology than most platforms can afford. Fewer active components. Single components where the standard paradigm is currently to have multiple (Framer/Deframer comes to mind). That almost certainly means having to write custom components that do the job of upstream F Prime components. It would be nice if these could be part of an open-source reference, rather than being developed in private. Nice work on getting a Zephyr build running on ESP32! |
|
I think this is a reasonable idea. We want to maintain small systems, but it isn't always easy. Currently the fprime-zephyr-reference is the smallest we maintain, but we'd happily put more into CI! |
Uh oh!
There was an error while loading. Please reload this page.
I recently decided to see if I could reasonably shoehorn the F Prime Zephyr Reference onto an ESP32, as an experiment in the grander scheme of attempting to find a home for the interesting platforms currently targeted in the F Prime Arduino.
This is effectively exploratory work to determine if we can drop the Arduino OSAL in favor of a proper RTOS for everything except the ATmega128 and ATmega2560. Those platforms require an external RAM add-on, so using Arduino was really a shim to avoid writing the peripheral support up front while requiring hardware that didn't neatly run out-of-the-box on official Arduino boards.
The fundamental problem the has pushed F Prime Arduino support into crisis comes from the toolchain management side of things. Arduino's IDE restructure and the advent of
arduino-climade it possible to choose your own IDE and do headless builds, but there is a lot of friction to maintaining a messy build adapter that serves primarily to appear accessible to the crowd familiar with the Arduino brand.Reviving the F Prime Arduino OSAL is a different discussion topic, and if people want to debate its value, I can start a different discussion thread for that.
Back to the task at hand! Cramming Zephyr RTOS onto the ESP32 along with the full system reference topology is a lot of memory for that platform, and while I have managed to get downlink over UART working, commanding is still elusive. A preview of this work can be viewed here:
https://github.com/SterlingPeet/fprime-zephyr-reference/tree/esp32_preview
Terminal Screen Capture
So the big question is this: Is there (or should we have) a standard minimal system reference for very very small platforms, that gets a minimal no-frills deployment running?
No sequencing, no multi-step framing and deframing, maybe a single gpio blinker component supporting a command or two. Literally the minimum table stakes. Perhaps a platform viability test that [hopefully] doesn't require a developer to spend 3 days adjusting F Prime and editing topologies to find out if it will fit on the platform. Twelve active components feels a little to big for this scenario.
Thoughts?
All reactions