由於vdsp5與gcc的差異,需要在config.h中進行適當的配置。
1 __KERNEL__
對於uclinux的內核編譯來講,必須加上__KERNEL__的定義。在 uclinux的原始文件中是通過在makefile中控制編譯器的選項來達到這一目的的。而我則在每個uclinux內核的c文件頭加上了#include <config.h>,因此直接將這一定義放在了config.h中:
#define __KERNEL__ 1 // 僅適用於內核配置
2 Gcc版本號
在uclinux的頭文件(include/compiler.h)中,要檢測GCC的版本號:
#if __GNUC__ >= 4
# include <linux/compiler-gcc4.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif
由於vdsp號稱和gcc3.4有較好的兼容性,因此在config.h中添加如下定義:
#define __GNUC__ 3
#define __GNUC_MINOR__ 4
uclinux-2008R1-RC8(bf561)到VDSP5的移植(62)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(61):KBUILD_MODNAME
uclinux-2008R1-RC8(bf561)到VDSP5的移植(60):current_text_addr
uclinux-2008R1-RC8(bf561)到VDSP5的移植(58)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(57)
uclinux-2008R1-RC8(bf561)到VDSP5的移植(56):__grab_cache_page