gitextract_cgeajq_d/ ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── _config.yml ├── _layouts/ │ └── default.html ├── assets/ │ └── css/ │ └── style.scss ├── docs/ │ ├── Contributions.md │ ├── Introduction.md │ ├── Prerequisites.md │ ├── lesson01/ │ │ ├── exercises.md │ │ ├── linux/ │ │ │ ├── build-system.md │ │ │ ├── kernel-startup.md │ │ │ └── project-structure.md │ │ └── rpi-os.md │ ├── lesson02/ │ │ ├── exercises.md │ │ ├── linux.md │ │ └── rpi-os.md │ ├── lesson03/ │ │ ├── exercises.md │ │ ├── linux/ │ │ │ ├── interrupt_controllers.md │ │ │ ├── low_level-exception_handling.md │ │ │ └── timer.md │ │ └── rpi-os.md │ ├── lesson04/ │ │ ├── exercises.md │ │ ├── linux/ │ │ │ ├── basic_structures.md │ │ │ ├── fork.md │ │ │ └── scheduler.md │ │ └── rpi-os.md │ ├── lesson05/ │ │ ├── exercises.md │ │ ├── linux.md │ │ └── rpi-os.md │ └── lesson06/ │ ├── exercises.md │ └── rpi-os.md ├── exercises/ │ ├── lesson01/ │ │ ├── 1/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── a-v-v/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── adkaster/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── evopen/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.sh │ │ │ │ ├── config.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── kernel_main.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── gcrisis/ │ │ │ │ ├── Makefile │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── stefanji/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── xdfm1/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ └── zjd0112/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ └── utils.S │ │ ├── 2/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart_pl011.h │ │ │ │ │ ├── uart_pl011.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart_pl011.c │ │ │ │ └── utils.S │ │ │ ├── a-v-v/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── adkaster/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── evopen/ │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile │ │ │ │ ├── build.sh │ │ │ │ ├── config.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker-qemu.ld │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── uart.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── gcrisis/ │ │ │ │ ├── Makefile │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── uart.c │ │ │ │ │ └── utils.S │ │ │ │ └── uart-boot/ │ │ │ │ ├── Makefile │ │ │ │ ├── downloader/ │ │ │ │ │ └── raspiloader.c │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ ├── readme │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── linker.ld │ │ │ │ ├── main.c │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ ├── stefanji/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart_pl011.h │ │ │ │ │ ├── pl011_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── pl011_uart.c │ │ │ │ └── utils.S │ │ │ ├── xdfm1/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ └── zjd0112/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── pl011_uart.h │ │ │ │ ├── pl011_uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── pl011_uart.c │ │ │ └── utils.S │ │ ├── 3/ │ │ │ ├── a-v-v/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── adkaster/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── evopen/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.sh │ │ │ │ ├── config.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── gcrisis/ │ │ │ │ ├── Makefile │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── stefanji/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ ├── szediwy/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ └── zjd0112/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── pl011_uart.h │ │ │ │ ├── pl011_uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── pl011_uart.c │ │ │ └── utils.S │ │ └── 4/ │ │ ├── H-4ND-H/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ └── utils.S │ │ ├── a-v-v/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ └── start_qemu.sh │ │ ├── avenito/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── uart.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mm.S │ │ │ ├── uart.c │ │ │ └── utils.S │ │ ├── bl4ckout31/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── uart.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ ├── evopen/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── build.sh │ │ │ ├── config.txt │ │ │ ├── include/ │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── uart.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── kernel.c │ │ │ │ ├── linker-qemu.ld │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ ├── rs/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ └── stefanji/ │ │ └── run_on_qemu.sh │ ├── lesson02/ │ │ ├── 1/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── evopen/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── config.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── gcrisis/ │ │ │ │ ├── Makefile │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ └── zjd0112/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ ├── printf.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ └── utils.S │ │ ├── 2/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── dis_with.txt │ │ │ │ ├── dis_without.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── avec │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ ├── sans │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── evopen/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── config.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── gcrisis/ │ │ │ │ ├── Makefile │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── szediwy/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── custom_printf.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── sysregs.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── custom_printf.c │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── zjd0112/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ ├── printf.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── test1.txt │ │ │ └── test2.txt │ │ └── 3/ │ │ ├── H-4ND-H/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ ├── printf.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ └── utils.S │ │ ├── avenito/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── uart.h │ │ │ │ ├── printf.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ ├── uart.c │ │ │ └── utils.S │ │ ├── bl4ckout31/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ └── mini_uart.h │ │ │ │ ├── printf.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ ├── evopen/ │ │ │ ├── Makefile │ │ │ ├── build.sh │ │ │ ├── config.txt │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── uart.h │ │ │ │ ├── printf.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── kernel.c │ │ │ │ ├── linker-qemu.ld │ │ │ │ ├── linker.ld │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── uart.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ └── rs/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ └── mini_uart.h │ │ │ ├── printf.h │ │ │ └── utils.h │ │ ├── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ └── utils.S │ │ └── start.sh │ ├── lesson03/ │ │ ├── 1/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── local_timer.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── local_timer.h │ │ │ │ │ │ └── mini_uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── local_timer.c │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── szediwy/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── custom_printf.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── sysregs.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── custom_printf.c │ │ │ │ ├── debug.c │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── xdfm1/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── arm_timer.h │ │ │ │ ├── entry.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── arm_timer.h │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── arm_timer.c │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ └── utils.S │ │ ├── 2/ │ │ │ ├── H-4ND-H/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ ├── rs/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── szediwy/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── custom_printf.h │ │ │ │ ├── entry.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── sysregs.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── custom_printf.c │ │ │ ├── debug.c │ │ │ ├── entry.S │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── 3/ │ │ ├── H-4ND-H/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ ├── avenito/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── irq.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── uart.h │ │ │ │ ├── printf.h │ │ │ │ ├── timer.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ ├── timer.c │ │ │ ├── uart.c │ │ │ └── utils.S │ │ ├── bl4ckout31/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── printf.c │ │ │ │ ├── timer.S │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ └── rs/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ ├── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── printf.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── start.sh │ ├── lesson04/ │ │ ├── 1/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ ├── timer.h │ │ │ │ │ │ └── uart.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── saida.txt │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── fork.c │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── mm.c │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── sched.S │ │ │ │ │ ├── sched.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ └── rs/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ ├── output.txt │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ ├── 2/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── fork.c │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── mm.c │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── sched.S │ │ │ │ │ ├── sched.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ └── rs/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ ├── output.txt │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ ├── 3/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── file.txt │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── bl4ckout31/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ ├── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ └── start.sh │ │ ├── 4/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── fork.c │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── mm.c │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── sched.S │ │ │ │ │ ├── sched.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ └── rs/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ ├── output.txt │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── 5/ │ │ ├── avenito/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── uart.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── timer.h │ │ │ │ ├── uart.h │ │ │ │ └── utils.h │ │ │ ├── saida.txt │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── timer.c │ │ │ ├── uart.c │ │ │ └── utils.S │ │ └── bl4ckout31/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── fork.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── sched.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ ├── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── timer.S │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── start.sh │ ├── lesson05/ │ │ ├── 1/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── sys.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── sys.S │ │ │ │ ├── sys.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── sys.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── fork.c │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── mm.c │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── sched.S │ │ │ │ │ ├── sched.c │ │ │ │ │ ├── sys.S │ │ │ │ │ ├── sys.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ └── xdfm1/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── sys.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── sys.S │ │ │ ├── sys.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ ├── 2/ │ │ │ ├── avenito/ │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── sys.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ └── src/ │ │ │ │ ├── boot.S │ │ │ │ ├── config.txt │ │ │ │ ├── entry.S │ │ │ │ ├── fork.c │ │ │ │ ├── irq.S │ │ │ │ ├── irq.c │ │ │ │ ├── kernel.c │ │ │ │ ├── linker.ld │ │ │ │ ├── mini_uart.c │ │ │ │ ├── mm.S │ │ │ │ ├── mm.c │ │ │ │ ├── printf.c │ │ │ │ ├── sched.S │ │ │ │ ├── sched.c │ │ │ │ ├── sys.S │ │ │ │ ├── sys.c │ │ │ │ ├── timer.c │ │ │ │ └── utils.S │ │ │ ├── bl4ckout31/ │ │ │ │ ├── Makefile │ │ │ │ ├── build.bat │ │ │ │ ├── build.sh │ │ │ │ ├── include/ │ │ │ │ │ ├── arm/ │ │ │ │ │ │ └── sysregs.h │ │ │ │ │ ├── entry.h │ │ │ │ │ ├── fork.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ ├── mm.h │ │ │ │ │ ├── peripherals/ │ │ │ │ │ │ ├── base.h │ │ │ │ │ │ ├── gpio.h │ │ │ │ │ │ ├── irq.h │ │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ │ └── timer.h │ │ │ │ │ ├── printf.h │ │ │ │ │ ├── sched.h │ │ │ │ │ ├── sys.h │ │ │ │ │ ├── timer.h │ │ │ │ │ └── utils.h │ │ │ │ ├── src/ │ │ │ │ │ ├── boot.S │ │ │ │ │ ├── config.txt │ │ │ │ │ ├── entry.S │ │ │ │ │ ├── fork.c │ │ │ │ │ ├── irq.S │ │ │ │ │ ├── irq.c │ │ │ │ │ ├── kernel.c │ │ │ │ │ ├── linker.ld │ │ │ │ │ ├── mini_uart.c │ │ │ │ │ ├── mm.S │ │ │ │ │ ├── mm.c │ │ │ │ │ ├── printf.c │ │ │ │ │ ├── sched.S │ │ │ │ │ ├── sched.c │ │ │ │ │ ├── sys.S │ │ │ │ │ ├── sys.c │ │ │ │ │ ├── timer.c │ │ │ │ │ └── utils.S │ │ │ │ └── start.sh │ │ │ └── xdfm1/ │ │ │ ├── Makefile │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── sys.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── sys.S │ │ │ ├── sys.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── 3/ │ │ ├── avenito/ │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build.bat │ │ │ ├── build.sh │ │ │ ├── include/ │ │ │ │ ├── arm/ │ │ │ │ │ └── sysregs.h │ │ │ │ ├── entry.h │ │ │ │ ├── fork.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ ├── mm.h │ │ │ │ ├── peripherals/ │ │ │ │ │ ├── base.h │ │ │ │ │ ├── gpio.h │ │ │ │ │ ├── irq.h │ │ │ │ │ ├── mini_uart.h │ │ │ │ │ └── timer.h │ │ │ │ ├── printf.h │ │ │ │ ├── sched.h │ │ │ │ ├── sys.h │ │ │ │ ├── timer.h │ │ │ │ └── utils.h │ │ │ └── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── sys.S │ │ │ ├── sys.c │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── bl4ckout31/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── fork.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── sched.h │ │ │ ├── sys.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ ├── src/ │ │ │ ├── boot.S │ │ │ ├── config.txt │ │ │ ├── entry.S │ │ │ ├── fork.c │ │ │ ├── irq.S │ │ │ ├── irq.c │ │ │ ├── kernel.c │ │ │ ├── linker.ld │ │ │ ├── mini_uart.c │ │ │ ├── mm.S │ │ │ ├── mm.c │ │ │ ├── printf.c │ │ │ ├── sched.S │ │ │ ├── sched.c │ │ │ ├── sys.S │ │ │ ├── sys.c │ │ │ ├── timer.S │ │ │ ├── timer.c │ │ │ └── utils.S │ │ └── start.sh │ └── lesson06/ │ └── 1/ │ └── xdfm1/ │ ├── Makefile │ ├── build.bat │ ├── build.sh │ ├── gdb.cmd │ ├── include/ │ │ ├── arm/ │ │ │ ├── mmu.h │ │ │ └── sysregs.h │ │ ├── entry.h │ │ ├── fork.h │ │ ├── irq.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── sched.h │ │ ├── sys.h │ │ ├── timer.h │ │ ├── user.h │ │ ├── user_sys.h │ │ └── utils.h │ ├── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── entry.S │ │ ├── fork.c │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── mm.c │ │ ├── printf.c │ │ ├── sched.S │ │ ├── sched.c │ │ ├── sys.c │ │ ├── timer.c │ │ ├── user.c │ │ ├── user_sys.S │ │ └── utils.S │ └── start.sh ├── src/ │ ├── lesson01/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ └── mini_uart.h │ │ │ └── utils.h │ │ └── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ └── utils.S │ ├── lesson02/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ └── mini_uart.h │ │ │ ├── printf.h │ │ │ └── utils.h │ │ └── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── printf.c │ │ └── utils.S │ ├── lesson03/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ └── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── entry.S │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── printf.c │ │ ├── timer.c │ │ └── utils.S │ ├── lesson04/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── fork.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── sched.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ └── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── entry.S │ │ ├── fork.c │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── mm.c │ │ ├── printf.c │ │ ├── sched.S │ │ ├── sched.c │ │ ├── timer.c │ │ └── utils.S │ ├── lesson05/ │ │ ├── Makefile │ │ ├── build.bat │ │ ├── build.sh │ │ ├── include/ │ │ │ ├── arm/ │ │ │ │ └── sysregs.h │ │ │ ├── entry.h │ │ │ ├── fork.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ ├── mm.h │ │ │ ├── peripherals/ │ │ │ │ ├── base.h │ │ │ │ ├── gpio.h │ │ │ │ ├── irq.h │ │ │ │ ├── mini_uart.h │ │ │ │ └── timer.h │ │ │ ├── printf.h │ │ │ ├── sched.h │ │ │ ├── sys.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ └── src/ │ │ ├── boot.S │ │ ├── config.txt │ │ ├── entry.S │ │ ├── fork.c │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── mm.c │ │ ├── printf.c │ │ ├── sched.S │ │ ├── sched.c │ │ ├── sys.S │ │ ├── sys.c │ │ ├── timer.c │ │ └── utils.S │ └── lesson06/ │ ├── Makefile │ ├── build.bat │ ├── build.sh │ ├── include/ │ │ ├── arm/ │ │ │ ├── mmu.h │ │ │ └── sysregs.h │ │ ├── entry.h │ │ ├── fork.h │ │ ├── irq.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── irq.h │ │ │ ├── mini_uart.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── sched.h │ │ ├── sys.h │ │ ├── timer.h │ │ ├── user.h │ │ ├── user_sys.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── config.txt │ ├── entry.S │ ├── fork.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ ├── mm.c │ ├── printf.c │ ├── sched.S │ ├── sched.c │ ├── sys.c │ ├── timer.c │ ├── user.c │ ├── user_sys.S │ └── utils.S └── translations/ ├── ko/ │ ├── Introduction.md │ ├── Prerequisites.md │ ├── lesson01/ │ │ ├── exercises.md │ │ ├── linux/ │ │ │ ├── build-system.md │ │ │ ├── kernel-startup.md │ │ │ └── project-structure.md │ │ └── rpi-os.md │ ├── lesson02/ │ │ ├── exercises.md │ │ ├── linux.md │ │ └── rpi-os.md │ ├── lesson03/ │ │ ├── exercises.md │ │ ├── linux/ │ │ │ ├── interrupt_controllers.md │ │ │ ├── low_level-exception_handling.md │ │ │ └── timer.md │ │ └── rpi-os.md │ └── lesson05/ │ ├── exercises.md │ ├── linux.md │ └── rpi-os.md └── zh-cn/ ├── Prerequisites.md ├── lesson01/ │ ├── exercises.md │ ├── linux/ │ │ ├── build-system.md │ │ ├── kernel-startup.md │ │ └── project-structure.md │ └── rpi-os.md ├── lesson02/ │ ├── exercises.md │ ├── linux.md │ └── rpi-os.md ├── lesson03/ │ ├── exercises.md │ ├── linux/ │ │ ├── interrupt_controllers.md │ │ ├── low_level-exception_handling.md │ │ └── timer.md │ └── rpi-os.md ├── lesson04/ │ ├── exercises.md │ ├── linux/ │ │ ├── basic_structures.md │ │ ├── fork.md │ │ └── scheduler.md │ └── rpi-os.md ├── lesson05/ │ ├── exercises.md │ ├── linux.md │ └── rpi-os.md └── lesson06/ ├── exercises.md └── rpi-os.md