by Komal Vachhani
See all projects here!
About the Project
💡 Project Background
This project involved designing and implementing a real-time executive (RTX).
The RTX provides a basic multi-programming environment that supports priorities, preemption, dynamic memory management, inter-task communications, and basic console I/O. The RTX is designed for a cooperative, non-malicious software environment. The RTX will support privileged and unprivileged modes of computation. Privileged RTX tasks execute under supervisor mode, and unprivileged RTX tasks execute under the user mode of the Cortex-A9 processor.
- Dynamic Memory Management: Implementing a dynamic memory manager that efficiently allocates and deallocates memory.
- Task Management: Developing a preemptive multitasking kernel with support for task creation, termination, and scheduling.
- Inter-task Communication and I/O: Establishing a mailbox system for inter-task communication and handling UART interrupts to facilitate user input via a simple terminal task.
🔨 Tools
- STM32CubeIDE (Coding in C and Assembly)
- STM32 - Nucleo64 F401RE Microcontroller
🔑 Key Learnings/Takeaways
- Real-Time Operating Systems
- Memory Management
- Task Management
- Communication