分享

redboot?on?VMware(i386)

 enrol 2012-04-01
redboot on VMware(i386)
摘自: www.  被阅读次数: 76

yangyi 于 2011-12-08 11:28:46 提供

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

  我偏好用 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./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 tools,user 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也行)。其它为默认选项。

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

  5、 联机调试hello word:编译ecos生成系统库:

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

  b、 Tools path – >path 中有build tools,user 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

  (gdb)set remotebaud 115200

  (gdb)target 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

  便可以仿真

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多