後在uClinux的user目錄下面建立了一個名為test的目錄:
cd uClinux/user/
mkdir test
然後在test目錄下建立一個名為hello.c的C程序,源代碼如下:
#include
int main(void)
{
printf("Hello,uClinux! ");
return(0);
}
然後使用交叉編譯器編譯hello.c源程序,生成名為hello的可執行文件:
arm-elf-gcc -Wall -elf2flt -o hello hello.c
再將該可執行文件復制到uClinux映像文件目錄(/home/user/uClinux/romfs/bin)中:
cp ./hello ../../romfs/bin/
然後在test目錄下建立一個Makefile文件,內容如下(其實是從user下的其他目錄中復制過來稍加修改得到的):
EXEC = hello
OBJS = hello.o
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
$(OBJS): hello.c
romfs:
$(ROMFSINST) /bin/$(EXEC)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
將來大家可以照著這個模板來修改其中的關聯關系即可,其余的嘛,可以不動。
接下來要對uClinux的一些配置文件進行修改,告訴uClinux系統添加了一個User Application。
編輯uClinux目錄下的文件user/Makefile,增加下面這行文字:
dir_$(CONFIG_USER_TEST_HELLO) += test
在這裡注意兩個問題:一是增加的位置,打開文件就會發現這個Makefile裡面有很多類似的語句,只要按照字母順序,把上面這行放到合適的位置即可;二是注意上面這行文字的顏色變化,黑色部分其實跟其他行是一樣的,紅色部分則是我們在user中添加的那個用戶程序目錄,注意前面出現是全大寫,後面出現是要與用戶目錄一致的,而藍色部分則是用戶程序編譯之後生成的那個可執行文件的名字,要全大寫。
編輯uClinux目錄下的文件config/Configure.help,在文件末尾追加下面這段文字:
CONFIG_USER_TEST_HELLO
This is an example C program in uClinux OS, and it will print "Hello, uClinux!" on screen.
注意:第一行要頂頭寫,第二行則要以2個空格開頭,總長度小於70個字符。
編輯uClinux目錄下的文件config/config.in,在文件末尾追加下面這段文字:
#########################mainmenu_option next_comment
comment 'Test'
bool 'hello' CONFIG_USER_TEST_HELLO
endmenu
#########################
然後返回uClinux的根目錄下,重新編譯內核,不過這個過程就不用像第一遍編譯內核那麼復雜了,可以只編譯連接最後需要生成的那個鏡像文件即可:
genromfs -v -V "ROMdisk" -f ./images/romfs.img -d ./romfs
make image
make
前面兩步操作會給出一個內存映像表,在裡面可以發現有一個名為hello的應用程序。如果沒有錯誤的話會很快完成