歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> uClinux系統上運行自已編寫的Hello程序

uClinux系統上運行自已編寫的Hello程序

日期:2017/3/2 16:56:08   编辑:Linux服務器

後在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的應用程序。如果沒有錯誤的話會很快完成

Copyright © Linux教程網 All Rights Reserved