2010年12月5日 星期日

忘了說的事項。

嘿嘿~~!
真是不好意思,
Shady 忘記向大家說明如何在 C 語言程式中呼叫組語函式了,
以 Shady 之前釋放出的 setzero.s 為例:

#include < stdlib.h >

extern void setzero(void *, int);
int main() {
        unsigned char *d;
        int a = 4096;
        if(posix_memalign((void *)&d, 128, a)) {
                printf("failed\n");
                goto end;
        }
        setzero(d, a);
end:
        return 0;
}

以上就是使用 C 語言程式呼叫 setzero.s 的例子,
當中的 posix_memalign 函式為配置一對齊 128 Bytes 邊界的記憶體區塊,
其大小為 4K Bytes。

最後 Shady 說明一下如何組譯、編譯程式,
首先是對 setzero.s 做組譯之指令:

ppu-as -o setzero.o setzero.s -mcell -maltivec --gdwarf-2

當中的 -mcell 選項為對 Cell CPU 做組譯,
而 -maltivec 為 VMX 的支援組譯選項。

假如上例的 C 程式的檔名為 test.c,
其編譯指令為:

ppu-gcc -o test test.c setzero.o -g

如此將二程式放在同個目錄下按順序在文字模式下輸入以上二個指令,
執行檔 test 就會出現在同個目錄下了。

沒有留言:

張貼留言