--- title: Lab26: system call toc: no ... 預期目標 ------- - 觀察作業系統系統呼叫的過程 - 藉由 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 繳交作業 ------- - 截止日期: * Mar 7, 2014 (含) 之前 - 請一併更新 GitHub