Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103729741
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-18 12:59:08

     来源:赛迪网    作者:sixth

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

阅读(253) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~