first simple rtos with qemu vm (realview pb a8)
Study Book: "도전! 임베디드 OS 만들기"
(https://github.com/navilera/Navilos)
- booting, exception vector table, reset handler, linker, Makefile, ...
- uart, console, printf
- interrupt, gic, uart interrupt
- timer, delay
- Host OS
- Ubuntu 22.04
- Machine
- vm: qemu-system-arm / realview-pb-a8
sudo apt install qemu-system-arm
- Cross platform (toolchain)
- toolchain: arm-none-eabi-
sudo apt install gcc-arm-none-eabi- gdb: gdb-multiarch
sudo apt install gdb-multiarch
make
make debugmake gdbtarget remote:1234file build/navilos.axf
make runmake kill(in another terminal)
first_simple_rtos/ ├── boot │ ├── handler.c │ └── realview_pb │ ├── entry.S │ └── main.c ├── docs │ ├── gdb.md │ └── images │ └── gdb_with_vim.png ├── hal │ └── realview_pb │ ├── interrupt.c │ ├── regs.c │ ├── timer.c │ └── uart.c ├── include │ ├── armcpu.h │ ├── armv7_ar.h │ ├── hal │ │ ├── interrupt.h │ │ ├── timer.h │ │ └── uart.h │ ├── mach │ │ └── realview_pb │ │ ├── interrupt.h │ │ ├── memory_map.h │ │ ├── sysctrl.h │ │ ├── timer.h │ │ └── uart.h │ ├── mmio.h │ ├── stdarg.h │ ├── stdint.h │ ├── stdio.h │ └── stdlib.h ├── lib │ ├── armcpu.c │ ├── stdio.c │ └── stdlib.c ├── Makefile ├── navilos.ld └── README.md
- All header files are under include/
- RealView Platform Baseboard for Cortex-A8
- PrimeCell UART (PL011) Technical Reference Manual
- ARM Dual-Timer Module (SP804) Technical Reference Manual
- GCC Link Options