redboot on VMware(i386) 摘自: www. 被閱讀次數(shù): 76 由 yangyi 于 2011-12-08 11:28:46 提供 一、 環(huán)境搭建Ecos開發(fā)環(huán)境目前流行的有兩種:1、基于windous的cygwin開發(fā)平臺 2、linux平臺。兩種都差不多,ecos的軟件運行需要unix的環(huán)境,cygwin在windous下模擬了這一環(huán)境。 我偏好用 linux平臺,平臺參數(shù)如下: Windows XP sp3 + VMware 6.5.2 + red hat enterprise linux 5 以下環(huán)境搭建不限于以上平臺,只要是linux環(huán)境(虛擬機,雙系統(tǒng)等都行)內核版本不要太低就可了。 本文搭建的ecos開發(fā)平臺為 VMware linux + VM redboot 虛擬機虛擬兩臺計算機,第一臺進行ecos的編譯配置,第二臺運行redboot,第一臺通過串口或網絡與第二臺進行聯(lián)機調試。 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 然后配置環(huán)境變量,見3中介紹。 3、 手動解壓包安裝: 由于以上兩程環(huán)境都需要所安裝的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、設置環(huán)境變量: 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角本以后需要時自動運行。 注意:黑色加粗部分為你所解壓的目錄,紅色部分根據(jù)所下載的包不同可能改變,目的是把ECOS_REPOSITORY指向所解壓源碼包中的packages路徑。在PATH中添加交叉工具的bin路徑。 我的以上代碼是保存在 env.sh中。用chmod 777 env.sh改為可執(zhí)行權限。 運行: source 絕對路徑/env.sh 或 絕對路徑/./env.sh 運行后可用 cat $ ECOS_REPOSITORY 、cat $PATH 查看是否設置正確 配置工具運行: Linux的配置工具位于ecos安裝目錄 tools/bin/下 。/ecosconfig 運行命令配置模式。 。/configtool 運行圖形界面配置模式。 2、 redboot配置及生成:ecos系統(tǒng)及應用程序需要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作軟盤映像文件啟動系統(tǒng)。如果希望生成軟盤映像文件用這個命令: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 為系統(tǒng)的bin目錄。 h、 點編譯,如編譯沒報錯會在redboot_i386.ecc 文件所在文件夾的redboot_i386_install/bin/ 下生成 redboot.bin 即為我們所需要的文件。 3、 Redboot在虛擬機上的運行:a、 虛擬機配置 新建的虛擬機,操作系統(tǒng)選other,刪除IDE硬盤及光驅,軟驅鏡像選前面生成的 *.bin(VM 6.5 不用把bin轉成軟驅flp也行)。其它為默認選項。 4、 安裝VSPD-虛擬串口:按照本文的開發(fā)環(huán)境搭建需要安裝虛擬串口以連接兩個虛擬機進行GDB調試。網上搜“VSPD”可以找到下載程序。安裝后新建一對 串口(比如 3,4),注意我們要用的是這兩個串口已經自動虛擬連接。在linux虛擬機中添加hardware 選serial port,connection中選physic serialport 串口選 3,再redboot啟動的虛擬機中添加hardware 選serial port,connection中選physic serialport 串口選 4. 5、 聯(lián)機調試hello word:編譯ecos生成系統(tǒng)庫: a、 新建一配置文件如ecos_i386.ecc,配置時templates選i386 pc target(vmware),packages選default. b、 Tools path – >path 中有build tools,user tools. build tools 為交叉編譯器中的bin 目錄,user tools 為系統(tǒng)的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 注意:黑體部分根據(jù)自已的改 運行 Make 便可生成 hello 在linux終端中用GDB遠程調試 $ i38f-elf-gdb –nw hello ?。╣db)set remotebaud 115200 ?。╣db)target remote /dev/ttyS0 ?。╣db) Load (gdb) continue 6、 Ecos quem環(huán)境建立:sudo apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev 下載并編譯 eMBosLab發(fā)布的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 執(zhí)行: qemu-system-arm -M mini2440 -kernel install/bin/redboot.elf -serial stdio -show-cursor 便可以仿真 |
|