后在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的应用程序。如果没有错误的话会很快完成