-
According to the growing complexity of tasks, which embedded systems should solve, there arises a need to use Real-Time Operation Systems (RTOS). However, RTOS usage and implementation require a set of restrictions for a system, especially on the memory usage and time delays occurrence. The available implementations of coroutines neither cross-platform solutions nor accessible without a third-party library. The article proposes a model of cross-platform coroutine usage from Cā+āā+ā20 for embedded systems programming and lightweight cooperative multitasking implementation. The proposed model contains the improved minimal scheduler without priorities mechanism and tasks descriptors. The model of coroutines usage for resource-constrained systems is developed. The task inside the model is presented as a coroutine, which can communicate with available coroutines, call them, or be suspended. Also, the minimal primitives of coroutines usage for cooperative multitasking, architecture decisions, and non-blocking data transmission were implemented. For the experimental research, the following list of program components was implemented in the proposed model: cooperative coroutines scheduler, tasks for data transmission, and awaitable type prototypes. The testing and analysis were completed on the chosen microcontroller (MCU). The perspective of coroutines usage on resource-constrained systems was shown in the research based on obtained results of FLASH and RAM consumption.
- Amin Salih Mohammed, Inna Filippenko, B. Saravana Balaji, Olesia Barkovska, Ivan Semenenko, Valentyn Korniienko
- Annals of Operations Research
- 25/11/2021
- https://link.springer.com/article/10.1007/s10479-021-04417-1
- https://doi.org/10.1007/s10479-021-04417-1