嵌入式开发环境搭建(linux)

之前没做过嵌入式的开发,对这方面也算比较感兴趣,这次是下定决心学习嵌入式程序设计,原想直接买块开发板,但是后来上网查了些资料发现有模拟器可以模拟硬件,那就先在模拟器上玩玩^_^

 

程序开发所使用的操作系统:debian

模拟器:SkyEye 1.2.6(可以模拟很多开发板)

嵌入式系统:uClinux20040408(高版本的一直没能成功编译T_T)

交叉编译器:arm-elf-tools-20040427.sh

 

ok,那我们开始吧(在开始之前请确认你的系统上已装了gcc,g++,bzip2,vim等工具)

 

 1、安装交叉编译器

      下载arm-elf-tools-20040427.sh,然后进入arm-elf-tools-20040427.sh所在目录执行

       sh arm-elf-tools-20040427.sh,如果这一步出错那只好到网上搜一下解决办法,我本机的是直接可以安装的。

 

2、安装SkyEye模拟器(最好不要用1.2.7版本,因为模拟时会有错误,一直没找到解决办法.......)

     下载SkyEye 1.2.6,进入SkyEye 1.2.6所在目录,解压skyeye,如果你用的是kde等桌面系统则直接右键解压,如果

      是在终端下就用tar jzxf 文件名 解压。

 

      在终端中进入skyeye 解压之后的目录,然后运行 ./configure --target=arm-elf --prefix=/usr/local

      命令执行完就会在skyeye 目录里面生成一个Makefile文件,有这个文件就可以编译skyeye了。

    

      接着执行 make 命令,完了执行 make install 命令,两个命令执行完,skyeye 就安装完成了。

 

      你可以用skyeye -h ,如果有输出“SkyEye 1.2.6.......................”一堆信息就安装成功了,如果提示说在/usr/bin

      目录下找不到skyeye文件,你就执行这个命令 cp skyeye /usr/bin  把编译出来的skyeye拷到/usr/bin里面就可以了

 

 3、编译uClinux

      编译uClinux可以得到一个映像文件,把这个映像放到SkyEye 中就可以进行模拟了。

      首先去http://www.uclinux.org/pub/uClinux/dist/      下载uClinux20040408解压,解压完就看到一

      个uClinux-dist目录,进入这个目录,cd uClinux-dist,我们得修改一下里面的文件。在uClinux-dist目录下执行

      vim vendors/config/armnommu/config.arch,在打开的文档中找到CROSS_COMPILE = arm-elf-,大概在第42

      行的位置。如果你文件中本来就是CROSS_COMPILE = arm-elf-的话就不用改了,如果不是就改成这样。我们用的不

      是arm-liunx-gcc交叉编译器.

      继续,运行vim linux-2.4.x/arch/armnommu/vmlinux-armv.lds.in,在打开的文档中找到,(.got)   /* Global

      offset table */ 第65行的位置,在下面加入三行
                               romfs_data = .;
                               romfs.o
                               romfs_data_end = .;

     

      保存。然后接着运行vim vendors/Samsung/4510B/Makefile,找到

      genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR) 也是65行,下面加入一行
      arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)

 

      好,这一阶段改得差不多了。是时候开始编译了

     第三步的操作都是在uClinux-dist目录下进行的。运行make menuconfig,配置一下skyeye ,要选的东西如下

               (GDB)Vendor/Product                         
     (linux-2.4.x) Kernel Version                           
            (uClibc) Libc Version                                   
               [ ] Default all settings (lose changes)                 
               [ ] Customize Kernel Settings                           
               [ ] Customize Vendor/User Settings                      
               [ ] Update Default Vendor Settings                     

      选完保存退出

      逐个运行

      make dep

      make lib_only

      make user_only

      make romfs

      make image//报错了这里,说没有linux的东西,先不管

      make linux //出现error:cannot open romfs.o

     cp ./linux-2.4.x/fs/romfs/romfs.o ./linux-2.4.x/

    重新make linux,还有错误,执行 vim linux-2.4.x/fs/romfs/inode.c

    找到struct file_operations romfs_file_operations,在函数前加static

    重新make linux

    接着make image

    ok,编译完成,在uClinux-dist下的images里生成了四个文件

    image.bin  linux.data  linux.text  romfs.img
    接下来就是用skyeye模拟了。。。。。

    模拟步骤参考

    http://blog.ednchina.com/yuliang0321/120554/message.aspx

 

   成功运行的话你可以看到这样的图案(uClinux):

   Welcome to
          ____ _  _
         /  __| ||_|                
    _   _| |  | | _ ____  _   _  _  _
   | | | | |  | || |  _ /| | | |/ // /
   | |_| | |__| || | | | | |_| |/    /
   |  ___/____|_||_|_| |_|/____|/_//_/
   | |
   |_|
 
耶~

 

后话:开始到现在共编了4天,才成功了,下载了uClinux的最新版本,问题不断,后来降低版本照着别人说的做还是有error.....,因为对liunx不熟悉,遇到问题都是网上找一段试一段,所以过程中可能会漏说一些必要的工具,以上内容是对查到的资料做了简单的拼接。

ps:欢迎指出文中错漏与不足,更希望有人能告诉我怎么编译高版本的uClinux。thx~

 

参考:

 http://www.dzkf.cn/html/qianrushixitong/2006/1017/831.html

 

http://blog.ednchina.com/yuliang0321/120554/message.aspx

 

 

 ----------------------------------------------end--------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值