用户操作
[即时聊天] [发私信] [加为好友]
石荣富ID:I2Cbus
2119次访问,排名2万外,好友4人,关注者4人。
I2Cbus的文章
原创 16 篇
翻译 0 篇
转载 7 篇
评论 1 篇
石荣富的公告
有事Q我
最近评论
vvukqr:wow power leveling
文章分类
    收藏
      相册
      windows内核
      中华补天网
      查找隐藏驱动
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 uClinux学习笔记之二 - 将新增应用程序编译进内存镜像文件收藏

      新一篇: uClinux学习笔记之三 uClinux驱动开发初步 | 旧一篇: uClinux学习笔记之一 Ubuntu 8.04 下uClinux的编译和skyeye仿真

      将新增应用程序编译进内存镜像文件

                

       

      将应用程序加入内存镜像文件,一般有两种方法:一种是先生成内存镜像文件,然后挂载内存镜像文件,将里面的目录拷到另一个可读写的目录下,单独编译好的应用程序拷进去,然后再用genromfs生成内存镜像文件。第二种方法就是编辑uClinux的配置文件,使其在执行make romfs命令时与其它运用程序一起加入。显然第二种方法会好一些,自己在配置的过程中也可以加深对uClinux内核配置的了解。下面来看看是怎么做到的。

       

      一、     写测试程序和Makefile

      //hello.c

      #include <stdio.h>

      int main(void)

      {

          printf("hello,embeded world!\n");

          return 0;

      }

      //--------------------------------------------------------------------

       

       

      #Makefile for hello.c

      EXEC = hello

      OBJS = hello.o

       

      all: $(EXEC)

       

      $(EXEC): $(OBJS)

        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)

       

      romfs:

        $(ROMFSINST) /bin/$(EXEC)

       

      clean:

        -rm -f $(EXEC) *.gdb *.elf *.o

      #---------------------------------------------------------------

       

      hello.cMakefile都很简单,在(uClinux目录)/user下新建一个名为“hello”的新目录,将hello.cMakefile拷贝进去。

       

       

      二、     配置hello

      1、打开(uClinux目录)/config目录下的config.in文件,

      comment 'Core Applications' ”这行的的下一行加入:

      bool   'hello app'            CONFIG_USER_HELLO_APP

      2、打开(uClinux目录)/user目录下的Makefile,加入下面这行:

      dir_$(CONFIG_USER_HELLO_APP)            += hello

      3、开始配置

      运行terminal,切换到uClinux目录

      运行make menuconfig,进入Target PlatformSelection,选择Customize Vendor/User Setting退出保存。

      在新出现的菜单中,进入Core Applications,可以看见hello app 选项,将其选择,保存退出。

      4、编译

      make dep

      make

      5、在skyeye中仿真

      在建立config文件skyeye.conf,保存在uClinux目录下,以下为内容:

      #skyeye config file sample

      cpu: arm7tdmi

      mach: at91

      mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000

      mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000

      mem_bank: map=M, type=R,  addr=0x01400000, size=0x00400000, file=./images/romfs.img

      mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000

      mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000

      mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000

      mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000

      #---------------------------------------------------------------------------------------------------

       

      terminal中切换到uClinux目录,运行:

      skyeye -e linux-2.4.x/linux

      出现“>”提示符时输入:./bin/hello,看到什么就不用说了。

       

      三、     设置程序自动运行

      修改(uClinux目录)/vendors/GDB/ARMulator-EB下的rc,在其末尾加上一行:

      /bin/hello

      之所以是GDB/ARMulator-EB是因为我们在配置内核时在Choose a Vendor/Product combination子菜单里选择的是GDB/ARMulator-EB,如果你在配置时选择的是其它选项,那么就要根据你的配置在相应的目录下修改rc文件。

      重新运行命令:

      make  romfs

      make  image


      再用skyeye仿真看看结果


       

      发表于 @ 2008年08月25日 18:32:00|评论(loading...)|收藏

      新一篇: uClinux学习笔记之三 uClinux驱动开发初步 | 旧一篇: uClinux学习笔记之一 Ubuntu 8.04 下uClinux的编译和skyeye仿真

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 石荣富