工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 5128|回复: 8

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

[复制链接]
发表于 2009-4-14 15:11 | 显示全部楼层 |阅读模式
之前没做过嵌入式的开发,对这方面也算比较感兴趣,这次是下定决心学习嵌入式程序设计,原想直接买块开发板,但是后来上网查了些资料发现有模拟器可以模拟硬件,那就先在模拟器上玩玩^_^

程序开发所使用的操作系统: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--------------------------------------------

评分

1

查看全部评分

发表于 2009-6-23 20:01 | 显示全部楼层
顶一下
回复

使用道具 举报

发表于 2009-6-30 03:46 | 显示全部楼层
晕死,不能给加分.LZ很厉害....
回复

使用道具 举报

发表于 2009-6-30 03:48 | 显示全部楼层
那接下来模拟做啥东西?
嵌入式的GUI?还是OS的内核,或者是在上层的应用?
嵌入式的GUI好像很好玩的样子...
回复

使用道具 举报

发表于 2009-6-30 18:58 | 显示全部楼层
8错,lZ很好,很强大~!
回复

使用道具 举报

发表于 2009-7-11 20:59 | 显示全部楼层
买板吧
回复

使用道具 举报

头像被屏蔽
发表于 2009-7-16 13:25 | 显示全部楼层
这么简单?很多参数要设置,boot也要写,VIC也要写,恐怕没这么简单吧?
回复

使用道具 举报

发表于 2009-8-15 01:29 | 显示全部楼层
毕业设计有幸第一次做了个嵌入式程序,不过模拟的还没弄过,这两天有空也搞搞,到时再来参考参考
回复

使用道具 举报

发表于 2011-1-1 22:46 | 显示全部楼层
我最近在学习linux知识耶。。刚好我听说一个讲座。。大家给点意见啦时间是一月三号下午一点。地点是广州市越秀区东风西路140号东方金融大厦610。大家去看下吧。
我自己觉得挺好的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-4-29 10:05

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表