
Scheduling Tasks in Arduino and AVR Architectures
What you'll learn
- Scheduling for AVR/Arduino Architectures
- Parallel Programming for Embedded Systems
Requirements
- Arduino under the Hood course or equivalent
- Basic Linux Knowledge (How to navigate in a terminal, how to invoke programs)
- Working knowledge about AVR aechitectures and embedded systems
Description
This course is for experts with immediate knowledge in Arduino/AVR architectures. It takes existing knowledge further and applies it to execute a program that is divided into several tasks. Those tasks can then run while the CPU idles, interleaving the computational part of the tasks resulting in a faster overall program execution and lower power consumption. Therefore, instead of manually interleaving tasks to increase the efficiency of the embedded system with the goal to prolong the battery life by increasing the sleep periods, the interleaving is handled automatically and dynamically adapting to the current situation without impacting the readability of the source code. In this course existing solutions are presented and one of them is explored in extensive depth.
The course covers topics such as
- The Operating System and the Kernel
- Scheduler for the Arduino Platform and AVR architecture
- Preemptive scheduling policy
- Cooperative scheduling policy
- Inter-Process Communication (IPC)
- Semaphore/Mutex
- Channel/Queue
- Existing Schedulers for Arduino
- Modification and Implementation of a low-power Scheduler for the AVR architecture
Who this course is for:
- Intermediate Embedded Systems Engineers
- Developers who are curious about a simple way to schedule several tasks in AVR/Arduino