歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

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

後在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