預期目標
- 觀察作業系統系統呼叫的過程
- 藉由 QEMU 模擬環境,嘗試修改 rtenv 並觀察其行為
修改 rtenv
- 同 Lab25 取得 rtenv 並編譯執行
- 修改 syscall.s 將
push {r7}
和 mov r7,
及 pop {r7}
等等指令中的 r7 改為 r8
- 修改 kernel.c 的 main() 函式,將 r7 改為 r8
- 重新編譯:
make clean all
make qemu
發現無法執行,why?
- 繼續修改 context_switch.s 將相關的 r7 改為 r8,再來編譯執行,行為符合預期
- ABI: Application Binary Interface
作業要求 (歡迎替換)
- 繼續分析 rtenv 的執行過程,試圖說明 process, system call, scheduler, pipe 等行為,更新於 Lab25 的共筆
- 將 ABI 定為透過 r8 來傳遞 system call / ISR number
繳交作業