gitextract_cwq282cg/ ├── README.md ├── linux_os/ │ ├── part1/ │ │ └── src/ │ │ ├── init.c │ │ └── start.S │ ├── part10/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── drmlist/ │ │ │ ├── Makefile │ │ │ └── drmlist.c │ │ ├── fbset/ │ │ │ ├── Makefile │ │ │ └── fbset.c │ │ ├── include/ │ │ │ ├── libfb.h │ │ │ ├── mydrm.h │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ ├── libfb/ │ │ │ ├── Makefile │ │ │ └── fb.c │ │ ├── mydrm/ │ │ │ ├── Makefile │ │ │ └── mydrm.c │ │ ├── mylib/ │ │ │ ├── Makefile │ │ │ ├── mem.c │ │ │ ├── printf.c │ │ │ ├── start.S │ │ │ ├── sys.c │ │ │ └── util.c │ │ └── printargs/ │ │ ├── Makefile │ │ └── printargs.c │ ├── part2/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ └── mylib.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ └── mylib/ │ │ ├── Makefile │ │ ├── start.S │ │ ├── sys.c │ │ └── util.c │ ├── part3/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ └── mylib.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ └── mylib/ │ │ ├── Makefile │ │ ├── start.S │ │ ├── sys.c │ │ └── util.c │ ├── part4/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ └── mylib/ │ │ ├── Makefile │ │ ├── printf.c │ │ ├── start.S │ │ ├── sys.c │ │ └── util.c │ ├── part5/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ └── mylib/ │ │ ├── Makefile │ │ ├── printf.c │ │ ├── start.S │ │ ├── sys.c │ │ └── util.c │ ├── part6/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ └── mylib/ │ │ ├── Makefile │ │ ├── mem.c │ │ ├── printf.c │ │ ├── start.S │ │ ├── sys.c │ │ └── util.c │ ├── part7/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── include/ │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ ├── mylib/ │ │ │ ├── Makefile │ │ │ ├── mem.c │ │ │ ├── printf.c │ │ │ ├── start.S │ │ │ ├── sys.c │ │ │ └── util.c │ │ └── printargs/ │ │ ├── Makefile │ │ └── printargs.c │ ├── part8/ │ │ ├── myos.img │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── fbset/ │ │ │ ├── Makefile │ │ │ └── fbset.c │ │ ├── include/ │ │ │ ├── libfb.h │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ ├── libfb/ │ │ │ ├── Makefile │ │ │ └── fb.c │ │ ├── mylib/ │ │ │ ├── Makefile │ │ │ ├── mem.c │ │ │ ├── printf.c │ │ │ ├── start.S │ │ │ ├── sys.c │ │ │ └── util.c │ │ └── printargs/ │ │ ├── Makefile │ │ └── printargs.c │ ├── part9/ │ │ └── src/ │ │ ├── base.mk │ │ ├── crt0_s.o │ │ ├── drmlist/ │ │ │ ├── Makefile │ │ │ └── drmlist.c │ │ ├── fbset/ │ │ │ ├── Makefile │ │ │ └── fbset.c │ │ ├── include/ │ │ │ ├── libfb.h │ │ │ ├── mydrm.h │ │ │ ├── mylib.h │ │ │ └── printf.h │ │ ├── init/ │ │ │ ├── Makefile │ │ │ ├── crt0.S │ │ │ └── init.c │ │ ├── lash/ │ │ │ ├── Makefile │ │ │ └── lash.c │ │ ├── libfb/ │ │ │ ├── Makefile │ │ │ └── fb.c │ │ ├── mydrm/ │ │ │ ├── Makefile │ │ │ └── mydrm.c │ │ ├── mylib/ │ │ │ ├── Makefile │ │ │ ├── mem.c │ │ │ ├── printf.c │ │ │ ├── start.S │ │ │ ├── sys.c │ │ │ └── util.c │ │ └── printargs/ │ │ ├── Makefile │ │ └── printargs.c │ └── qemu/ │ └── qemu-run.sh ├── ooc/ │ ├── Makefile │ ├── flog.h │ ├── log.h │ ├── log_console.c │ ├── log_file.c │ └── main.c ├── pico/ │ └── 6502_part1/ │ ├── CMakeLists.txt │ ├── pico_sdk_import.cmake │ └── test.c └── rpi_bm/ ├── part1-5/ │ ├── Makefile │ ├── README.md │ ├── config.txt │ ├── include/ │ │ ├── common.h │ │ ├── gpio.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ └── gpio.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── gpio.c │ ├── kernel.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ └── utils.S ├── part10/ │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── entry.S │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── timer.c │ └── utils.S ├── part11/ │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ └── utils.h │ ├── spi-slave/ │ │ └── spi-slave.ino │ ├── src/ │ │ ├── boot.S │ │ ├── entry.S │ │ ├── gpio.c │ │ ├── i2c.c │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ ├── lcd.c │ │ ├── linker.ld │ │ ├── mini_uart.c │ │ ├── mm.S │ │ ├── printf.c │ │ ├── timer.c │ │ └── utils.S │ └── user_submissions/ │ └── README.md ├── part12/ │ ├── .vscode/ │ │ └── settings.json │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── entry.S │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── lcd.c │ ├── led_display.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── spi.c │ ├── timer.c │ └── utils.S ├── part13/ │ ├── .vscode/ │ │ └── settings.json │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mailbox.h │ │ ├── mem.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── video.h │ └── src/ │ ├── boot.S │ ├── entry.S │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── lcd.c │ ├── led_display.c │ ├── linker.ld │ ├── mailbox.c │ ├── mem.c │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── spi.c │ ├── timer.c │ └── utils.S ├── part14/ │ ├── .vscode/ │ │ └── settings.json │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mailbox.h │ │ ├── mem.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── video.h │ ├── square_margin │ └── src/ │ ├── boot.S │ ├── entry.S │ ├── fontData.c │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── lcd.c │ ├── led_display.c │ ├── linker.ld │ ├── mailbox.c │ ├── mem.c │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── spi.c │ ├── timer.c │ ├── utils.S │ └── video.c ├── part15/ │ ├── .vscode/ │ │ └── settings.json │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── dma.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mailbox.h │ │ ├── mem.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── dma.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── video.h │ ├── square_margin │ └── src/ │ ├── boot.S │ ├── dma.c │ ├── entry.S │ ├── fontData.c │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── lcd.c │ ├── led_display.c │ ├── linker.ld │ ├── mailbox.c │ ├── mem.c │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── spi.c │ ├── timer.c │ ├── utils.S │ └── video.c ├── part16/ │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── dma.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mailbox.h │ │ ├── mem.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── mmu.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── dma.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── video.h │ ├── square_margin │ └── src/ │ ├── boot.S │ ├── dma.c │ ├── entry.S │ ├── fontData.c │ ├── gpio.c │ ├── i2c.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── lcd.c │ ├── led_display.c │ ├── linker.ld │ ├── mailbox.c │ ├── mem.c │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ ├── spi.c │ ├── timer.c │ ├── utils.S │ └── video.c ├── part17/ │ ├── .vscode/ │ │ └── settings.json │ ├── Makefile │ ├── armstub/ │ │ ├── build/ │ │ │ ├── armstub.elf │ │ │ ├── armstub_s.d │ │ │ └── armstub_s.o │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── i2c-slave/ │ │ └── i2c-slave.ino │ ├── include/ │ │ ├── common.h │ │ ├── dma.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── i2c.h │ │ ├── io.h │ │ ├── irq.h │ │ ├── lcd.h │ │ ├── led_display.h │ │ ├── mailbox.h │ │ ├── mem.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── mmu.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── dma.h │ │ │ ├── emmc.h │ │ │ ├── gpio.h │ │ │ ├── i2c.h │ │ │ ├── irq.h │ │ │ ├── spi.h │ │ │ └── timer.h │ │ ├── printf.h │ │ ├── spi.h │ │ ├── sysregs.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── video.h │ ├── square_margin │ └── src/ │ ├── boot/ │ │ ├── boot.S │ │ └── entry.S │ ├── dma/ │ │ └── dma.c │ ├── drivers/ │ │ ├── emmc/ │ │ │ ├── emmc.c │ │ │ └── emmc_clock.c │ │ ├── gpio/ │ │ │ └── gpio.c │ │ ├── i2c/ │ │ │ ├── i2c.c │ │ │ └── lcd.c │ │ ├── mailbox/ │ │ │ └── mailbox.c │ │ ├── muart/ │ │ │ └── mini_uart.c │ │ ├── shared/ │ │ │ └── io.c │ │ ├── spi/ │ │ │ ├── led_display.c │ │ │ └── spi.c │ │ └── video/ │ │ ├── fontData.c │ │ └── video.c │ ├── kernel/ │ │ ├── irq.S │ │ ├── irq.c │ │ ├── kernel.c │ │ └── timer.c │ ├── linker.ld │ ├── mem/ │ │ ├── mem.c │ │ └── mm.S │ └── misc/ │ ├── printf.c │ ├── utils.S │ └── utils.c ├── part6-7/ │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── include/ │ │ ├── common.h │ │ ├── gpio.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ └── gpio.h │ │ ├── printf.h │ │ ├── sysregs.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── gpio.c │ ├── kernel.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ └── utils.S ├── part8/ │ ├── Makefile │ ├── armstub/ │ │ └── src/ │ │ └── armstub.S │ ├── config.txt │ ├── include/ │ │ ├── common.h │ │ ├── entry.h │ │ ├── gpio.h │ │ ├── irq.h │ │ ├── mini_uart.h │ │ ├── mm.h │ │ ├── peripherals/ │ │ │ ├── aux.h │ │ │ ├── base.h │ │ │ ├── gpio.h │ │ │ └── irq.h │ │ ├── printf.h │ │ ├── sysregs.h │ │ └── utils.h │ └── src/ │ ├── boot.S │ ├── entry.S │ ├── gpio.c │ ├── irq.S │ ├── irq.c │ ├── kernel.c │ ├── linker.ld │ ├── mini_uart.c │ ├── mm.S │ ├── printf.c │ └── utils.S └── part9/ ├── Makefile ├── armstub/ │ └── src/ │ └── armstub.S ├── config.txt ├── include/ │ ├── common.h │ ├── entry.h │ ├── gpio.h │ ├── irq.h │ ├── mini_uart.h │ ├── mm.h │ ├── peripherals/ │ │ ├── aux.h │ │ ├── base.h │ │ ├── gpio.h │ │ ├── irq.h │ │ └── timer.h │ ├── printf.h │ ├── sysregs.h │ ├── timer.h │ └── utils.h └── src/ ├── boot.S ├── entry.S ├── gpio.c ├── irq.S ├── irq.c ├── kernel.c ├── linker.ld ├── mini_uart.c ├── mm.S ├── printf.c ├── timer.c └── utils.S