├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── README_zh.md ├── code ├── asm │ ├── Makefile │ ├── _first │ │ ├── Makefile │ │ └── test.s │ ├── add │ │ ├── Makefile │ │ └── test.s │ ├── add2 │ │ ├── Makefile │ │ └── test.s │ ├── addi │ │ ├── Makefile │ │ └── test.s │ ├── and │ │ ├── Makefile │ │ └── test.s │ ├── andi │ │ ├── Makefile │ │ └── test.s │ ├── asm2c │ │ ├── Makefile │ │ ├── gdbinit │ │ ├── test.c │ │ └── test.s │ ├── auipc │ │ ├── Makefile │ │ └── test.s │ ├── bne │ │ ├── Makefile │ │ └── test.s │ ├── build.mk │ ├── c2asm │ │ ├── Makefile │ │ ├── gdbinit │ │ ├── test.c │ │ └── test.s │ ├── cc_leaf │ │ ├── Makefile │ │ ├── gdbinit │ │ └── test.s │ ├── cc_nested │ │ ├── Makefile │ │ ├── gdbinit │ │ └── test.s │ ├── gdbinit │ ├── jalr │ │ ├── Makefile │ │ └── test.s │ ├── la │ │ ├── Makefile │ │ └── test.s │ ├── lb │ │ ├── Makefile │ │ └── test.s │ ├── lbu │ │ ├── Makefile │ │ └── test.s │ ├── li │ │ ├── Makefile │ │ └── test.s │ ├── lui │ │ ├── Makefile │ │ └── test.s │ ├── mv │ │ ├── Makefile │ │ └── test.s │ ├── neg │ │ ├── Makefile │ │ └── test.s │ ├── nop │ │ ├── Makefile │ │ └── test.s │ ├── not │ │ ├── Makefile │ │ └── test.s │ ├── rule.mk │ ├── sb │ │ ├── Makefile │ │ └── test.s │ ├── slli │ │ ├── Makefile │ │ └── test.s │ ├── srai │ │ ├── Makefile │ │ ├── test.c │ │ └── test.s │ ├── srli │ │ ├── Makefile │ │ ├── test.c │ │ └── test.s │ ├── sub │ │ ├── Makefile │ │ └── test.s │ └── subi │ │ ├── Makefile │ │ └── test.s └── os │ ├── 00-bootstrap │ ├── Makefile │ ├── kernel.c │ ├── platform.h │ └── start.S │ ├── 01-helloRVOS │ ├── Makefile │ ├── kernel.c │ ├── platform.h │ ├── start.S │ ├── types.h │ └── uart.c │ ├── 02-memanagement │ ├── Makefile │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── printf.c │ ├── start.S │ ├── types.h │ └── uart.c │ ├── 03-contextswitch │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── printf.c │ ├── sched.c │ ├── start.S │ ├── types.h │ └── uart.c │ ├── 04-multitask │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── printf.c │ ├── sched.c │ ├── start.S │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 05-traps │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 06-interrupts │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 07-hwtimer │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── timer.c │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 08-preemptive │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── timer.c │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 09-lock │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── lock.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── timer.c │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 10-swtimer │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── lock.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── timer.c │ ├── trap.c │ ├── types.h │ ├── uart.c │ └── user.c │ ├── 11-syscall │ ├── Makefile │ ├── entry.S │ ├── kernel.c │ ├── lock.c │ ├── mem.S │ ├── os.h │ ├── os.ld │ ├── page.c │ ├── platform.h │ ├── plic.c │ ├── printf.c │ ├── riscv.h │ ├── sched.c │ ├── start.S │ ├── syscall.c │ ├── syscall.h │ ├── timer.c │ ├── trap.c │ ├── types.h │ ├── uart.c │ ├── user.c │ ├── user_api.h │ └── usys.S │ ├── Makefile │ ├── common.mk │ ├── defines.mk │ └── gdbinit ├── errata.pdf ├── exercises.pdf ├── howto-run-with-ubuntu1804.md ├── howto-run-with-ubuntu1804_zh.md ├── qq-group-2.png ├── qq-group.png ├── refs ├── AN-0491.pdf ├── FU540-C000-v1.0.pdf ├── RISC-V-Reader-Chinese-v2p1.pdf ├── riscv-privileged-20190608-1.pdf ├── riscv-spec-20191213.pdf └── td16550.pdf └── slides ├── ch00-introduction.pdf ├── ch01-compter-system-overview.pdf ├── ch02-riscv-isa-introduction.pdf ├── ch03-compile-link.pdf ├── ch04-embedded-development.pdf ├── ch05-assemble-programming.pdf ├── ch06-rvos.pdf ├── ch07-hello-rvos.pdf ├── ch08-memory-management.pdf ├── ch09-context-switch.pdf ├── ch10-trap-exception.pdf ├── ch11-external-interrupt.pdf ├── ch12-hardware-timer.pdf ├── ch13-preemptive.pdf ├── ch14-lock.pdf ├── ch15-software-timer.pdf └── ch16-syscall.pdf /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.bin 3 | *.elf 4 | code/os/*/out/ 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/README.md -------------------------------------------------------------------------------- /README_zh.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/README_zh.md -------------------------------------------------------------------------------- /code/asm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/Makefile -------------------------------------------------------------------------------- /code/asm/_first/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/_first/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/_first/test.s -------------------------------------------------------------------------------- /code/asm/add/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/add/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/add/test.s -------------------------------------------------------------------------------- /code/asm/add2/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/add2/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/add2/test.s -------------------------------------------------------------------------------- /code/asm/addi/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/addi/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/addi/test.s -------------------------------------------------------------------------------- /code/asm/and/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/and/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/and/test.s -------------------------------------------------------------------------------- /code/asm/andi/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/andi/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/andi/test.s -------------------------------------------------------------------------------- /code/asm/asm2c/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/asm2c/Makefile -------------------------------------------------------------------------------- /code/asm/asm2c/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/asm2c/gdbinit -------------------------------------------------------------------------------- /code/asm/asm2c/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/asm2c/test.c -------------------------------------------------------------------------------- /code/asm/asm2c/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/asm2c/test.s -------------------------------------------------------------------------------- /code/asm/auipc/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/auipc/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/auipc/test.s -------------------------------------------------------------------------------- /code/asm/bne/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/bne/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/bne/test.s -------------------------------------------------------------------------------- /code/asm/build.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/build.mk -------------------------------------------------------------------------------- /code/asm/c2asm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/c2asm/Makefile -------------------------------------------------------------------------------- /code/asm/c2asm/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/c2asm/gdbinit -------------------------------------------------------------------------------- /code/asm/c2asm/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/c2asm/test.c -------------------------------------------------------------------------------- /code/asm/c2asm/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/c2asm/test.s -------------------------------------------------------------------------------- /code/asm/cc_leaf/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_leaf/Makefile -------------------------------------------------------------------------------- /code/asm/cc_leaf/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_leaf/gdbinit -------------------------------------------------------------------------------- /code/asm/cc_leaf/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_leaf/test.s -------------------------------------------------------------------------------- /code/asm/cc_nested/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_nested/Makefile -------------------------------------------------------------------------------- /code/asm/cc_nested/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_nested/gdbinit -------------------------------------------------------------------------------- /code/asm/cc_nested/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/cc_nested/test.s -------------------------------------------------------------------------------- /code/asm/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/gdbinit -------------------------------------------------------------------------------- /code/asm/jalr/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/jalr/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/jalr/test.s -------------------------------------------------------------------------------- /code/asm/la/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/la/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/la/test.s -------------------------------------------------------------------------------- /code/asm/lb/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/lb/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/lb/test.s -------------------------------------------------------------------------------- /code/asm/lbu/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/lbu/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/lbu/test.s -------------------------------------------------------------------------------- /code/asm/li/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/li/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/li/test.s -------------------------------------------------------------------------------- /code/asm/lui/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/lui/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/lui/test.s -------------------------------------------------------------------------------- /code/asm/mv/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/mv/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/mv/test.s -------------------------------------------------------------------------------- /code/asm/neg/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/neg/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/neg/test.s -------------------------------------------------------------------------------- /code/asm/nop/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/nop/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/nop/test.s -------------------------------------------------------------------------------- /code/asm/not/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/not/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/not/test.s -------------------------------------------------------------------------------- /code/asm/rule.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/rule.mk -------------------------------------------------------------------------------- /code/asm/sb/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/sb/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/sb/test.s -------------------------------------------------------------------------------- /code/asm/slli/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/slli/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/slli/test.s -------------------------------------------------------------------------------- /code/asm/srai/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/srai/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/srai/test.c -------------------------------------------------------------------------------- /code/asm/srai/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/srai/test.s -------------------------------------------------------------------------------- /code/asm/srli/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/srli/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/srli/test.c -------------------------------------------------------------------------------- /code/asm/srli/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/srli/test.s -------------------------------------------------------------------------------- /code/asm/sub/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/sub/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/sub/test.s -------------------------------------------------------------------------------- /code/asm/subi/Makefile: -------------------------------------------------------------------------------- 1 | ../build.mk -------------------------------------------------------------------------------- /code/asm/subi/test.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/asm/subi/test.s -------------------------------------------------------------------------------- /code/os/00-bootstrap/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/00-bootstrap/Makefile -------------------------------------------------------------------------------- /code/os/00-bootstrap/kernel.c: -------------------------------------------------------------------------------- 1 | void start_kernel(void) 2 | { 3 | while (1) {}; // stop here! 4 | } 5 | 6 | -------------------------------------------------------------------------------- /code/os/00-bootstrap/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/00-bootstrap/platform.h -------------------------------------------------------------------------------- /code/os/00-bootstrap/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/00-bootstrap/start.S -------------------------------------------------------------------------------- /code/os/01-helloRVOS/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/Makefile -------------------------------------------------------------------------------- /code/os/01-helloRVOS/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/kernel.c -------------------------------------------------------------------------------- /code/os/01-helloRVOS/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/platform.h -------------------------------------------------------------------------------- /code/os/01-helloRVOS/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/start.S -------------------------------------------------------------------------------- /code/os/01-helloRVOS/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/types.h -------------------------------------------------------------------------------- /code/os/01-helloRVOS/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/01-helloRVOS/uart.c -------------------------------------------------------------------------------- /code/os/02-memanagement/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/Makefile -------------------------------------------------------------------------------- /code/os/02-memanagement/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/kernel.c -------------------------------------------------------------------------------- /code/os/02-memanagement/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/mem.S -------------------------------------------------------------------------------- /code/os/02-memanagement/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/os.h -------------------------------------------------------------------------------- /code/os/02-memanagement/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/os.ld -------------------------------------------------------------------------------- /code/os/02-memanagement/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/page.c -------------------------------------------------------------------------------- /code/os/02-memanagement/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/platform.h -------------------------------------------------------------------------------- /code/os/02-memanagement/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/printf.c -------------------------------------------------------------------------------- /code/os/02-memanagement/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/start.S -------------------------------------------------------------------------------- /code/os/02-memanagement/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/types.h -------------------------------------------------------------------------------- /code/os/02-memanagement/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/02-memanagement/uart.c -------------------------------------------------------------------------------- /code/os/03-contextswitch/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/Makefile -------------------------------------------------------------------------------- /code/os/03-contextswitch/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/entry.S -------------------------------------------------------------------------------- /code/os/03-contextswitch/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/kernel.c -------------------------------------------------------------------------------- /code/os/03-contextswitch/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/mem.S -------------------------------------------------------------------------------- /code/os/03-contextswitch/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/os.h -------------------------------------------------------------------------------- /code/os/03-contextswitch/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/os.ld -------------------------------------------------------------------------------- /code/os/03-contextswitch/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/page.c -------------------------------------------------------------------------------- /code/os/03-contextswitch/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/platform.h -------------------------------------------------------------------------------- /code/os/03-contextswitch/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/printf.c -------------------------------------------------------------------------------- /code/os/03-contextswitch/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/sched.c -------------------------------------------------------------------------------- /code/os/03-contextswitch/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/start.S -------------------------------------------------------------------------------- /code/os/03-contextswitch/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/types.h -------------------------------------------------------------------------------- /code/os/03-contextswitch/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/03-contextswitch/uart.c -------------------------------------------------------------------------------- /code/os/04-multitask/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/Makefile -------------------------------------------------------------------------------- /code/os/04-multitask/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/entry.S -------------------------------------------------------------------------------- /code/os/04-multitask/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/kernel.c -------------------------------------------------------------------------------- /code/os/04-multitask/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/mem.S -------------------------------------------------------------------------------- /code/os/04-multitask/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/os.h -------------------------------------------------------------------------------- /code/os/04-multitask/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/os.ld -------------------------------------------------------------------------------- /code/os/04-multitask/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/page.c -------------------------------------------------------------------------------- /code/os/04-multitask/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/platform.h -------------------------------------------------------------------------------- /code/os/04-multitask/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/printf.c -------------------------------------------------------------------------------- /code/os/04-multitask/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/sched.c -------------------------------------------------------------------------------- /code/os/04-multitask/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/start.S -------------------------------------------------------------------------------- /code/os/04-multitask/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/types.h -------------------------------------------------------------------------------- /code/os/04-multitask/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/uart.c -------------------------------------------------------------------------------- /code/os/04-multitask/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/04-multitask/user.c -------------------------------------------------------------------------------- /code/os/05-traps/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/Makefile -------------------------------------------------------------------------------- /code/os/05-traps/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/entry.S -------------------------------------------------------------------------------- /code/os/05-traps/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/kernel.c -------------------------------------------------------------------------------- /code/os/05-traps/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/mem.S -------------------------------------------------------------------------------- /code/os/05-traps/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/os.h -------------------------------------------------------------------------------- /code/os/05-traps/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/os.ld -------------------------------------------------------------------------------- /code/os/05-traps/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/page.c -------------------------------------------------------------------------------- /code/os/05-traps/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/platform.h -------------------------------------------------------------------------------- /code/os/05-traps/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/printf.c -------------------------------------------------------------------------------- /code/os/05-traps/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/riscv.h -------------------------------------------------------------------------------- /code/os/05-traps/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/sched.c -------------------------------------------------------------------------------- /code/os/05-traps/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/start.S -------------------------------------------------------------------------------- /code/os/05-traps/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/trap.c -------------------------------------------------------------------------------- /code/os/05-traps/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/types.h -------------------------------------------------------------------------------- /code/os/05-traps/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/uart.c -------------------------------------------------------------------------------- /code/os/05-traps/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/05-traps/user.c -------------------------------------------------------------------------------- /code/os/06-interrupts/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/Makefile -------------------------------------------------------------------------------- /code/os/06-interrupts/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/entry.S -------------------------------------------------------------------------------- /code/os/06-interrupts/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/kernel.c -------------------------------------------------------------------------------- /code/os/06-interrupts/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/mem.S -------------------------------------------------------------------------------- /code/os/06-interrupts/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/os.h -------------------------------------------------------------------------------- /code/os/06-interrupts/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/os.ld -------------------------------------------------------------------------------- /code/os/06-interrupts/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/page.c -------------------------------------------------------------------------------- /code/os/06-interrupts/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/platform.h -------------------------------------------------------------------------------- /code/os/06-interrupts/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/plic.c -------------------------------------------------------------------------------- /code/os/06-interrupts/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/printf.c -------------------------------------------------------------------------------- /code/os/06-interrupts/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/riscv.h -------------------------------------------------------------------------------- /code/os/06-interrupts/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/sched.c -------------------------------------------------------------------------------- /code/os/06-interrupts/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/start.S -------------------------------------------------------------------------------- /code/os/06-interrupts/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/trap.c -------------------------------------------------------------------------------- /code/os/06-interrupts/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/types.h -------------------------------------------------------------------------------- /code/os/06-interrupts/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/uart.c -------------------------------------------------------------------------------- /code/os/06-interrupts/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/06-interrupts/user.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/Makefile -------------------------------------------------------------------------------- /code/os/07-hwtimer/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/entry.S -------------------------------------------------------------------------------- /code/os/07-hwtimer/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/kernel.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/mem.S -------------------------------------------------------------------------------- /code/os/07-hwtimer/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/os.h -------------------------------------------------------------------------------- /code/os/07-hwtimer/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/os.ld -------------------------------------------------------------------------------- /code/os/07-hwtimer/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/page.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/platform.h -------------------------------------------------------------------------------- /code/os/07-hwtimer/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/plic.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/printf.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/riscv.h -------------------------------------------------------------------------------- /code/os/07-hwtimer/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/sched.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/start.S -------------------------------------------------------------------------------- /code/os/07-hwtimer/timer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/timer.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/trap.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/types.h -------------------------------------------------------------------------------- /code/os/07-hwtimer/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/uart.c -------------------------------------------------------------------------------- /code/os/07-hwtimer/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/07-hwtimer/user.c -------------------------------------------------------------------------------- /code/os/08-preemptive/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/Makefile -------------------------------------------------------------------------------- /code/os/08-preemptive/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/entry.S -------------------------------------------------------------------------------- /code/os/08-preemptive/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/kernel.c -------------------------------------------------------------------------------- /code/os/08-preemptive/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/mem.S -------------------------------------------------------------------------------- /code/os/08-preemptive/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/os.h -------------------------------------------------------------------------------- /code/os/08-preemptive/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/os.ld -------------------------------------------------------------------------------- /code/os/08-preemptive/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/page.c -------------------------------------------------------------------------------- /code/os/08-preemptive/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/platform.h -------------------------------------------------------------------------------- /code/os/08-preemptive/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/plic.c -------------------------------------------------------------------------------- /code/os/08-preemptive/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/printf.c -------------------------------------------------------------------------------- /code/os/08-preemptive/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/riscv.h -------------------------------------------------------------------------------- /code/os/08-preemptive/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/sched.c -------------------------------------------------------------------------------- /code/os/08-preemptive/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/start.S -------------------------------------------------------------------------------- /code/os/08-preemptive/timer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/timer.c -------------------------------------------------------------------------------- /code/os/08-preemptive/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/trap.c -------------------------------------------------------------------------------- /code/os/08-preemptive/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/types.h -------------------------------------------------------------------------------- /code/os/08-preemptive/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/uart.c -------------------------------------------------------------------------------- /code/os/08-preemptive/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/08-preemptive/user.c -------------------------------------------------------------------------------- /code/os/09-lock/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/Makefile -------------------------------------------------------------------------------- /code/os/09-lock/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/entry.S -------------------------------------------------------------------------------- /code/os/09-lock/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/kernel.c -------------------------------------------------------------------------------- /code/os/09-lock/lock.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/lock.c -------------------------------------------------------------------------------- /code/os/09-lock/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/mem.S -------------------------------------------------------------------------------- /code/os/09-lock/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/os.h -------------------------------------------------------------------------------- /code/os/09-lock/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/os.ld -------------------------------------------------------------------------------- /code/os/09-lock/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/page.c -------------------------------------------------------------------------------- /code/os/09-lock/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/platform.h -------------------------------------------------------------------------------- /code/os/09-lock/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/plic.c -------------------------------------------------------------------------------- /code/os/09-lock/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/printf.c -------------------------------------------------------------------------------- /code/os/09-lock/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/riscv.h -------------------------------------------------------------------------------- /code/os/09-lock/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/sched.c -------------------------------------------------------------------------------- /code/os/09-lock/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/start.S -------------------------------------------------------------------------------- /code/os/09-lock/timer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/timer.c -------------------------------------------------------------------------------- /code/os/09-lock/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/trap.c -------------------------------------------------------------------------------- /code/os/09-lock/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/types.h -------------------------------------------------------------------------------- /code/os/09-lock/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/uart.c -------------------------------------------------------------------------------- /code/os/09-lock/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/09-lock/user.c -------------------------------------------------------------------------------- /code/os/10-swtimer/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/Makefile -------------------------------------------------------------------------------- /code/os/10-swtimer/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/entry.S -------------------------------------------------------------------------------- /code/os/10-swtimer/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/kernel.c -------------------------------------------------------------------------------- /code/os/10-swtimer/lock.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/lock.c -------------------------------------------------------------------------------- /code/os/10-swtimer/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/mem.S -------------------------------------------------------------------------------- /code/os/10-swtimer/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/os.h -------------------------------------------------------------------------------- /code/os/10-swtimer/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/os.ld -------------------------------------------------------------------------------- /code/os/10-swtimer/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/page.c -------------------------------------------------------------------------------- /code/os/10-swtimer/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/platform.h -------------------------------------------------------------------------------- /code/os/10-swtimer/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/plic.c -------------------------------------------------------------------------------- /code/os/10-swtimer/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/printf.c -------------------------------------------------------------------------------- /code/os/10-swtimer/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/riscv.h -------------------------------------------------------------------------------- /code/os/10-swtimer/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/sched.c -------------------------------------------------------------------------------- /code/os/10-swtimer/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/start.S -------------------------------------------------------------------------------- /code/os/10-swtimer/timer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/timer.c -------------------------------------------------------------------------------- /code/os/10-swtimer/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/trap.c -------------------------------------------------------------------------------- /code/os/10-swtimer/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/types.h -------------------------------------------------------------------------------- /code/os/10-swtimer/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/uart.c -------------------------------------------------------------------------------- /code/os/10-swtimer/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/10-swtimer/user.c -------------------------------------------------------------------------------- /code/os/11-syscall/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/Makefile -------------------------------------------------------------------------------- /code/os/11-syscall/entry.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/entry.S -------------------------------------------------------------------------------- /code/os/11-syscall/kernel.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/kernel.c -------------------------------------------------------------------------------- /code/os/11-syscall/lock.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/lock.c -------------------------------------------------------------------------------- /code/os/11-syscall/mem.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/mem.S -------------------------------------------------------------------------------- /code/os/11-syscall/os.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/os.h -------------------------------------------------------------------------------- /code/os/11-syscall/os.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/os.ld -------------------------------------------------------------------------------- /code/os/11-syscall/page.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/page.c -------------------------------------------------------------------------------- /code/os/11-syscall/platform.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/platform.h -------------------------------------------------------------------------------- /code/os/11-syscall/plic.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/plic.c -------------------------------------------------------------------------------- /code/os/11-syscall/printf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/printf.c -------------------------------------------------------------------------------- /code/os/11-syscall/riscv.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/riscv.h -------------------------------------------------------------------------------- /code/os/11-syscall/sched.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/sched.c -------------------------------------------------------------------------------- /code/os/11-syscall/start.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/start.S -------------------------------------------------------------------------------- /code/os/11-syscall/syscall.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/syscall.c -------------------------------------------------------------------------------- /code/os/11-syscall/syscall.h: -------------------------------------------------------------------------------- 1 | // System call numbers 2 | #define SYS_gethid 1 3 | -------------------------------------------------------------------------------- /code/os/11-syscall/timer.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/timer.c -------------------------------------------------------------------------------- /code/os/11-syscall/trap.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/trap.c -------------------------------------------------------------------------------- /code/os/11-syscall/types.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/types.h -------------------------------------------------------------------------------- /code/os/11-syscall/uart.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/uart.c -------------------------------------------------------------------------------- /code/os/11-syscall/user.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/user.c -------------------------------------------------------------------------------- /code/os/11-syscall/user_api.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/user_api.h -------------------------------------------------------------------------------- /code/os/11-syscall/usys.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/11-syscall/usys.S -------------------------------------------------------------------------------- /code/os/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/Makefile -------------------------------------------------------------------------------- /code/os/common.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/common.mk -------------------------------------------------------------------------------- /code/os/defines.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/defines.mk -------------------------------------------------------------------------------- /code/os/gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/code/os/gdbinit -------------------------------------------------------------------------------- /errata.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/errata.pdf -------------------------------------------------------------------------------- /exercises.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/exercises.pdf -------------------------------------------------------------------------------- /howto-run-with-ubuntu1804.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/howto-run-with-ubuntu1804.md -------------------------------------------------------------------------------- /howto-run-with-ubuntu1804_zh.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/howto-run-with-ubuntu1804_zh.md -------------------------------------------------------------------------------- /qq-group-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/qq-group-2.png -------------------------------------------------------------------------------- /qq-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/qq-group.png -------------------------------------------------------------------------------- /refs/AN-0491.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/AN-0491.pdf -------------------------------------------------------------------------------- /refs/FU540-C000-v1.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/FU540-C000-v1.0.pdf -------------------------------------------------------------------------------- /refs/RISC-V-Reader-Chinese-v2p1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/RISC-V-Reader-Chinese-v2p1.pdf -------------------------------------------------------------------------------- /refs/riscv-privileged-20190608-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/riscv-privileged-20190608-1.pdf -------------------------------------------------------------------------------- /refs/riscv-spec-20191213.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/riscv-spec-20191213.pdf -------------------------------------------------------------------------------- /refs/td16550.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/refs/td16550.pdf -------------------------------------------------------------------------------- /slides/ch00-introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch00-introduction.pdf -------------------------------------------------------------------------------- /slides/ch01-compter-system-overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch01-compter-system-overview.pdf -------------------------------------------------------------------------------- /slides/ch02-riscv-isa-introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch02-riscv-isa-introduction.pdf -------------------------------------------------------------------------------- /slides/ch03-compile-link.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch03-compile-link.pdf -------------------------------------------------------------------------------- /slides/ch04-embedded-development.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch04-embedded-development.pdf -------------------------------------------------------------------------------- /slides/ch05-assemble-programming.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch05-assemble-programming.pdf -------------------------------------------------------------------------------- /slides/ch06-rvos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch06-rvos.pdf -------------------------------------------------------------------------------- /slides/ch07-hello-rvos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch07-hello-rvos.pdf -------------------------------------------------------------------------------- /slides/ch08-memory-management.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch08-memory-management.pdf -------------------------------------------------------------------------------- /slides/ch09-context-switch.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch09-context-switch.pdf -------------------------------------------------------------------------------- /slides/ch10-trap-exception.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch10-trap-exception.pdf -------------------------------------------------------------------------------- /slides/ch11-external-interrupt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch11-external-interrupt.pdf -------------------------------------------------------------------------------- /slides/ch12-hardware-timer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch12-hardware-timer.pdf -------------------------------------------------------------------------------- /slides/ch13-preemptive.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch13-preemptive.pdf -------------------------------------------------------------------------------- /slides/ch14-lock.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch14-lock.pdf -------------------------------------------------------------------------------- /slides/ch15-software-timer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch15-software-timer.pdf -------------------------------------------------------------------------------- /slides/ch16-syscall.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/unicornx/riscv-operating-system-mooc/HEAD/slides/ch16-syscall.pdf --------------------------------------------------------------------------------