redboot on VMware(i386)

一、 环境搭建

Ecos开发环境目前流行的有两种:1、基于windouscygwin开发平台 2linux平台。两种都差不多,ecos的软件运行需要unix的环境,cygwinwindous下模拟了这一环境。

我偏好用 linux平台,平台参数如下:

Windows XP sp3  +  VMware 6.5.2  +  red hat enterprise linux 5

以下环境搭建不限于以上平台,只要是linux环境(虚拟机,双系统等都行)内核版本不要太低就可了。

本文搭建的ecos开发平台为 VMware linux + VM redboot

虚拟机虚拟两台计算机,第一台进行ecos的编译配置,第二台运行redboot,第一台通过串口或网络与第二台进行联机调试。

1、 源码及交叉工具的安装

VMware 虚拟机 及 其上的linux安装不是本文介绍重点,详细网上资料很多。

源码安装方法大至有三种:

1、 官方方法

官网提供的下载ecos-install.tcl 后任意拷贝至linux目录 用命令 sh ecos-install.tcl

运行按提示安装即可。

2、 使用CVS服务器安装

首先确认linux是否装好CVS客户端,没有则装上。

登录CVS

$ cvs –d : pserver:anoncvs@sources.redhat.com:/cvs/ecos login

进入原码要存放的目录:

$ cvs –z3 –d :pserver:anoncvs@sources.redhat.com:/cvs/ecos co –P ecos

然后配置环境变量,见3中介绍。

3、 手动解压包安装:

由于以上两程环境都需要所安装的PC机能连网,而很多情况(我们公司不能)是所安装的PC机不能连外网所以我一般用这种方法安装。详细步骤如下:

a、源码下载

源码下载地址镜像:http://ecos.sourceware.org/mirror.html 此镜像列出了很多源码可用的址址,任选一个,进行ecos源码及gun工具的下载。我下载的源码包如下:

ecos-3.0.i386linux.tar.bz2  ecos源码包

ecoscentric-gnutools-i386-elf-1.4-2.i386linux.tar(1).bz2 交叉编译工具,目标平台为I386 若为其它平台请下载对应的交叉编译工具。

b安装:

  解压命令: tar  jxvf  *.bz2

  解压ecos-3.0.i386linux.tar.bz2

 ecoscentric-gnutools-i386-elf-1.4-2.i386linux.tar(1).bz2 到linux目录(如:/opt/ecos/)。

c、设置环境变量:

       echo "set the ecos env"

ECOS_REPOSITORY=/opt/ecos/ecos-3.0/packages

export ECOS_REPOSITORiY

PATH=$PATH:/opt/ecos/ i386-elf/bin

export PATH

以上命令可以写成shell角本以后需要时自动运行。

注意:黑色加粗部分为你所解压的目录,红色部分根据所下载的包不同可能改变,目的是把ECOS_REPOSITORY指向所解压源码包中的packages路径。在PATH中添加交叉工具的bin路径。

我的以上代码是保存在 env.sh中。用chmod 777 env.sh改为可执行权限。

运行: source 绝对路径/env.sh  或 绝对路径/./env.sh

运行后可用 cat $ ECOS_REPOSITORY 、cat $PATH 查看是否设置正确

配置工具运行:

Linux的配置工具位于ecos安装目录 tools/bin/下

./ecosconfig  运行命令配置模式。

./configtool 运行图形界面配置模式。

2、 redboot配置及生成:

ecos系统及应用程序需要redboot引导,所以搭建平台需要先生成redboot

ecos安装目录的 tools/bin/ 运行 

./configtool 运行图形界面配置模式。

a、 新建一配置文件如redboot_i386.ecc,配置时templates选i386 pc target(vmware),packages选redboot,会有两个冲突,让配置工具自行解决(图形配置界 的Tools 中有个 resolve conflicts)

b、  eCos HAL/i386 architecture/i386 PC Target/Startup type 改为FLOPPY

c、 选上Redboot ROM monitor/Redboot HAL options/Build RedBoot binary image这样编译后在redboot_i386_install/bin目录中会生成redboot.bin文件,VMware6.5可以直接用redboot.bin作软盘映像文件启动系统。如果希望生成软盘映像文件用这个命令:
dd conv=sync if=redboot.bin f=redboot.flp bs=1440k
如果只生成了redboot.elf用这个命令可生成bin文件:
objcopy -O binary redboot.elf redboot.bin

d、 取消Redboot ROM monitor/Build Redboot ROM ELF image/Allow RedBoot to support disks

e、 如果要使用串口调试,波特率可用以下的配置项修改:
eCos HAL/i386 architecture/i386 PC Target/Diagnostic serial port baud rate
eCos HAL/i386 architecture/i386 PC Target/GDB serial port baud rate

f、 如果要使用网络功能,可用菜单Build>Packages 添加包Common ethernet support
ip地址在Redboot ROM monitor/Build Redboot ROM ELF image/Redboot Networking/Default IP address修改也可以用DHCP功能自动获得IP,这时应选上Redboot ROM monitor/Build Redboot ROM ELF image/Redboot Networking/Use DHCP to get IP information

g、 Tools path – >path 中有build toolsuser tools。 build tools 为交叉编译器中的bin 目录,user tools 为系统的bin目录。

h、 点编译,如编译没报错会在redboot_i386.ecc 文件所在文件夹的redboot_i386_install/bin/ 下生成 redboot.bin 即为我们所需要的文件。

3、 Redboot在虚拟机上的运行:

a、 虚拟机配置

新建的虚拟机,操作系统选other,删除IDE硬盘及光驱,软驱镜像选前面生成的 *.bin(VM 6.5 不用把bin转成软驱flp也行)。其它为默认选项。

b、 运行:


4、 安装VSPD-虚拟串口:

按照本文的开发环境搭建需要安装虚拟串口以连接两个虚拟机进行GDB调试。网上搜“VSPD”可以找到下载程序。安装后新建一对串口(比如 34),注意我们要用的是这两个串口已经自动虚拟连接。在linux虚拟机中添加hardware serial portconnection中选physic serialport 串口选 3,再redboot启动的虚拟机中添加hardware serial portconnection中选physic serialport 串口选 4.

5、 联机调试hello word

编译ecos生成系统库:

a、 新建一配置文件如ecos_i386.ecc,配置时templates选i386 pc target(vmware),packages选default. 

b、 Tools path – >path 中有build toolsuser tools。 build tools 为交叉编译器中的bin 目录,user tools 为系统的bin目录。

c、 点编译,在ecos_i386.ecc目录会生成 ecos_i386_install 文件夹。里面包含include,lib即为我们需要的库

编译hello word

修改ecos-3.0/examples/ 下的Makefile

把 INSTALL_DIR=$$(INSTALL_DIR) # override on make command line

改成 INSTALL_DIR=/opt/output/ ecos_i386_install

注意:黑体部分根据自已的改

运行 Make

便可生成 hello

linux终端中用GDB远程调试

 $ i38f-elf-gdb –nw hello

gdbset remotebaud 115200

gdbtarget remote /dev/ttyS0

(gdb)  Load

(gdb)  continue 

结果如图:

    

6、 Ecos quem环境建立

sudo apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev

下载并编译 eMBosLab发布的MINI2440 QEMU软件模拟器

git clone git://emboslab.git.sourceforge.net/gitroot/emboslab/qemu-mini2440

下载以后会有qemu-mini2440的目录,还需要切换到ecos-emboslab这个分支

git checkout -b ecos-emboslab remotes/origin/ecos-emboslab(红色部分不用也行)

./configure --target-list=arm-softmmu

配置时估计有可能差一些软件包,网上下载装上就可以了(sudo apt-get install gcc  libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev

)

Make

./config-host.h:14: warning: missing terminating " character,dos unix字符转换问题 ,用UltraEdit 打开转换一下就可以了。

完成后有arm-softmmu/qemu-system-arm qemu-system-arm 及我们的虚拟 mini2440

执行:

qemu-system-arm -M mini2440 -kernel install/bin/redboot.elf  -serial stdio -show-cursor

便可以仿真


http://wenwen.sogou.com/z/q583161471.htm
http://wenwen.sogou.com/z/q583161838.htm
http://wenwen.sogou.com/z/q583161871.htm
http://wenwen.sogou.com/z/q583159011.htm
http://wenwen.sogou.com/z/q583158130.htm
http://wenwen.sogou.com/z/q583159410.htm
http://wenwen.sogou.com/z/q583160973.htm
http://wenwen.sogou.com/z/q583160931.htm
http://wenwen.sogou.com/z/q583160585.htm


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值