THE IMPLEMENTATION OF SMALL OPERATING SYSTEMFOR ARM-BASED MICROCONTROLLER
Date Issued
2026-07-07
Author(s)
Guliyev, Javid
ADA University
Abstract
The operating systems is the one of most important pieces of software ever created yet the majority has the real hard time understanding. It stands from the issue that operating systems are only exclusive for desktop and mainframe computers which have complex device architecture which makes it really complicated to write one in the first place. The majority of the available resources only explain how to interact with operating systems and not how to write one from the scratch. The purpose of this document is to demonstrate that even small resource constraint architectures like the ones that can be found in microcontrollers can be an ideal environment for kernel development, finally fill the gap between theoretical knowledge and practical implementation. The document will provide small but capable environment based around STM32F103C8T6 microcontroller and how operating system can be written for it. The system is built on a custom boot process, supported by a hand-written linker configuration and low-level hardware initialization routines. Device drivers are implemented from scratch for essential peripherals UART for serial communication, SPI for external device interfacing, and an SD card module for persistent storage. To avoid wasting CPU cycles on polling, all I/O operations are handled through an interrupts and DMA transfers. Structured data storage is enabled through an integrated FAT-based filesystem. A display driver for the ST7789 controller is also implemented, providing graphical output capability. The proposed design demonstrates how a minimal yet functional operating system can be constructed on embedded hardware while preserving key operating system principles. The project serves both as a learning platform for computer architecture and operating systems and as a foundation for further research and development in embedded system design.
