Build a minimal multi-tasking OS kernel for ARM from scratch
- QEMU with an STM32 microcontroller implementation
- Build instructions
./configure --disable-werror --enable-debug \
--target-list="arm-softmmu" \
--extra-cflags=-DSTM32_UART_NO_BAUD_DELAY \
--extra-cflags=-DSTM32_UART_ENABLE_OVERRUN \
--disable-gtk
make
- GNU Toolchain for ARM
- Set
$PATHaccordingly
00-HelloWorld- Enable STM32 USART to print trivial greetings
01-HelloWorld- Almost identical to the previous one but improved startup routines
02-ContextSwitch-1- Basic switch between user and kernel mode
03-ContextSwitch-2- system call is introduced as an effective method to return to kernel
04-Multitasking- Two user tasks are interatively switching
05-TimerInterrupt- Enable SysTick for future scheduler implementation
06-Preemptive- Basic preemptive scheduling
- Changes the current working directory to the specified one and then
make
make qemu
mini-arm-os is freely redistributable under the two-clause BSD License.
Use of this source code is governed by a BSD-style license that can be found
in the LICENSE file.