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
有說明和範例
沒有留言:
張貼留言