版本 5fc92ddc4eb28aac0156a7158a5bc46fd9cc5dfc
預期目標
- 觀察作業系統系統呼叫的過程
- 藉由 QEMU 模擬環境,嘗試修改 rtenv 並觀察其行為
修改 rtenv
- 同
Lab25</embedded/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</embedded/Lab25>
_ 的共筆
- 位於 Hackpad 的
Lab25 共筆<https://embedded2014.hackpad.com/Lab25-GNU-Toolchain-iqMI18AAgwU>
_
- 將 ABI 定為透過 r8 來傳遞 system call / ISR number
繳交作業