星期五, 4月 01, 2005

GCC attrib: naked

C function經過compiler compile後都會在function entry,exit加入一些code,如save used registers,add return code.
但是如果不想要compiler加上這些code,就可以在function宣告時加上attribut : naked

void funA(void) __attribute__ ( (naked))
{
...
asm("ret");
}

這樣compiler就不會加code,但是也因為這樣,programmer自己要在最後加上return code。

這通常是在os kernel時使用,例如context switch function,programmer要自己處理context save
restore的動作。
http://www.freertos.org/implementation/a00012.html

http://www.freertos.org/implementation/a00013.html
有說明和範例

沒有留言:

網誌存檔