A custom RTOS framework for the TM4C MCU which includes custom implementation of malloc and free, priority-based scheduling, mutexes and semaphores and thread management.
Each LEDs represents the running threads and each buttons executes a task.
- Priority-Based Scheduling: Lets user toggle priority scheduling for the threads, where level 0 is the highest priority and level 15 is the lowest. By default, there are 10 threads running with Idle being the lowest priority.
- Custom Memory Management: Custom implementation of malloc and free to prevent non-deterministic behaviors.
- Mutex and Semaphores: Resource management for threads avoid deadlocks and control access to shared resources.
- Shell Interface: Gives user access to manage threads - kill, restart, check pid or view memory and CPU usage.
reboot
: Reboots the TM4C MCU.kill pid
: Kill a thread using its PID.pkill threadname
: Kill a thread using its thread name.preempt on|off
: Toggle preemption using ON or OFFsched rr|prio
: Toggle between Round-robin scheduling (sched rr) or priority scheduling (sched prio).pidof x
: Gets the pid of a thread by typing the thread name.threadname
: Restarts the thread if it is stopped.meminfo
: Displays thread priority, name, memory address and memory size.ipcs
: Displays the status of the mutexes and semaphores.ps
: Displays the thread PID, CPU usage and its state.