This is a series of examples about emulating ARM systems, mainly with QEMU, and building programs that run on the emulated platforms. The advantages of using an emulated platform for learning is that it’s possible to control and debug many aspects of the system, and also that it’s safer to experiment on a virtual machine without the risk of bricking or breaking a physical board.
The following posts are about running ARM Linux in QEMU, building the kernel, the filesystem and the boot loader:
The following posts are about bare metal programming on emulated ARM systems:
Some source code about the experiments is present in balau/arm-sandbox repository on GitHub.
Some source code about the experiments
Reference https://balau82.wordpress.com/arm-emulation/