分享到plurk 分享到twitter 分享到facebook

版本 69f51b987afd24860130e90b0f87fb86a67855c0

Lab26: system call

預期目標

  • 觀察作業系統系統呼叫的過程
  • 藉由 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