一、 环境搭建
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.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 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也行)。其它为默认选项。
b、 运行:
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
便可以仿真
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