Severson-Group / AMDC-Firmware

Embedded system code (C and Verilog) which runs the AMDC Hardware
http://docs.amdc.dev/firmware
BSD 3-Clause "New" or "Revised" License
31 stars 5 forks source link

Create RTOS-based example application using FreeRTOS #132

Closed npetersen2 closed 4 months ago

npetersen2 commented 4 years ago

Continuing from investigation in #48:

After reading a lot into FreeRTOS, we could actually port the existing bare SDK application to run on FreeRTOS and have the same functionality... i.e. still cooperative, no ISRs, etc... This might be a good first step to moving to an RTOS. Once the system is stable and working with the cooperative design, we could consider creating a new SDK project, maybe bare_rtos which is based on preemptive scheduling... This would require rewriting a lot of the system modules (commands, log, etc) to make sure they are reentrant.

We should port the existing code over to use FreeRTOS with the cooperative scheduling option. This would make the AMDC run the same way it does now (i.e. with fixed time slices), but would give us FreeRTOS experience.

Once we do this, we can move to a preemptive approach...

npetersen2 commented 4 months ago

@codecubepi has been working on this and has a basic example application working in dual-core mode. See #375. The FreeRTOS codebase will be released as v2