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 便可以仿真 |
|