Note: syscall on ARM

最近工作比較少一點, 因此起心動念想把一些東西複習一下, 買了Unix v6 的導讀簡體中文翻譯本, 看到了 syscall , 想到了曾經讀過Linux/Windows 的實作有提到x86在Pentium 時代引進了新的指令, 就是為了這檔事情更有效率(AMD & Intel 還不同), 就想查一下ARM 是否有類似的東西 google 了一下 現在指令叫作 SVC (SuperVisor Call)以前叫作SWI(SoftWare Interrupt), 剛開始玩ADS(ARM Development Studio)在sample code 中倒是看過很多SWI, 實際開始用ARM 很少真的摸底層, 因此沒意識到他的主要作用就是用來當syscall 的, ARM 現在算正名吧, 不過機械碼倒是沒變得樣子, 有找到一篇不錯的文章 cortex-m3-supervisor-call-svc-using-gcc

在 F9 Microkernel 可以閱讀下面兩個檔案, 看到實際應用

./user/lib/l4/platform/syscalls.c  (user 端如何產生 syscall)
./kernel/syscall.c        (kernel 端實際的 syscall handler )

ref.

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: