制作RedBoot启动光盘以及下载调试eCos应用

原创 2013年12月03日 19:25:36

eCos是开源免版税的抢占式实时操作系统。其最大亮点是可配置,与其配套的图形化配置工具提供组件管理、选项配置、自动化单元测试等。eCos官网http://ecos.sourceware.org,eCos技术网http://www.52ecos.net,eCos技术网QQ群144940146。

http://blog.csdn.net/zoomdy/article/details/17099953
mingdu.zheng <at> gmail <dot> com

不是我对软盘有什么意见,反正都是通过虚拟机启动,无论是软盘还是光盘都只是个镜像文件。问题是我使用的VirtualBox虚拟机不支持RedBoot生成的软盘镜像。用二进制工具查看RedBoot生成的镜像文件,原来在第一扇区没有包含FAT文件系统要求的数据结构,本来也就没有使用FAT文件系统嘛,VirtualBox认识第一扇区包含FAT文件系统要求数据结构的软盘镜像,但不认识未包含该数据结构的软盘镜像。又不想修改RedBoot代码,无奈之下想出使用光盘的招数。

本想使用isolinux来制作启动光盘,但一时没找到编译好的isolinux二进制文件,后来发现不用isolinux就可以实现启动光盘制作。如果使用isolinux估计会有更多的麻烦,因为RedBoot的启动代码是通过读取软盘来加载自己的,因此如果使用isolinux最终可能是无法启动的。

编译RedBoot

目标机模板选择:i386 PC target(vmware)

组件包模板选择:redboot

导入配置:<repo>/hal/i386/pc/<version>/misc/redboot_FLOPPY.ecm

保存配置后编译。

制作启动光盘

cd <prefix>_install/bin
dd conv=sync if=redboot.bin of=redboot.flp bs=1440k
mkdir isofs
cp redboot.flp isofs/
mkisofs -o redboot.iso -b redboot.flp isofs/

(2)使用dd命令复制RedBoot镜像并填充至1.44M,刚好是3.5寸软盘的容量,必须是软盘容量大小,否则创建启动光盘失败。

(5)使用mkisofs命令创建启动光盘,光盘镜像文件名为redboot.iso,启动镜像为redboot.flp,使用默认启动方式,默认启动方式将模拟软盘的启动方式,将redboot.flp加载到内存中,然后将redboot.flp镜像作为模拟的软盘,这个工作是BIOS完成的。

使用VirtualBox启动RedBoot

创建虚拟机,选择光盘启动,创建IDE控制器,添加生成的redboot.iso作为光盘镜像。启动后截图如下。



在真实PC上启动

理论上可以在真实PC机上通过启动光盘启动RedBoot,但是在我的戴尔一体机上启动失败,ThinkPad笔记本启动失败,原因不明。

GDB连接RedBoot

RedBoot集成了GDB stub功能,因此可以通过GDB连接RedBoot,然后可以加载调试eCos应用。GDB和RedBoot的连接方式可以是串口也可以是网络。

串口连接

修改RedBoot虚拟机配置,启用串口COM1,端口模式选择主机管道,端口/文件位置填入\\.\pipe\vmwaredebug。点这里下载VMWare Serial Line Gateway,在Windows命令提示符下运行VMWareGateway.exe /T,确保VMWareGateway.exe在当前目录或PATH指定目录内,不能在Cygwin终端下运行该程序。启动RedBoot虚拟机。打开GDB,输入target remote localhost:567建立连接。接下来就可以使用GDB加载eCos应用到虚拟机内并进行调试。

串口连接存在的问题

使用串口连接,无论RedBoot配置波特率为9600还是115200,下载速率均为8KB,显然虚拟机对串口速度进行了限制,大概是为了真实地模拟实际串口操作,但是波特率修改成115200也不能提高下载速度,原因不明,可能虚拟机没有实现虚拟串口设备的波特率设置,8KB的连接速度是不能接受的。比真实硬件的速度还慢,使用虚拟机的目的是解决使用真实硬件速度慢以及不方便的矛盾。显然使用串口连接不能解决这个矛盾。

网络连接

修改RedBoot虚拟机配置,打开网络的高级选项,点击端口转发按钮,添加TCP端口转发,主机端口9000,子系统端口9000。启动RedBoot虚拟机。打开GDB,输入target remote localhost:9000。接下来就可以使用GDB加载eCos应用到虚拟机内并进行调试。

网络连接存在的问题

在我的环境下,网络连接的速度比串口速度还要慢,直接崩溃,下载要等很长时间,调试时有时候响应很快有时候要等好一会。原因不明。我的环境:Windows XP SP3,奔腾双核E5200,VirtualBox-4.2.6。谁知道原因或你的环境可以正常工作,麻烦告诉我,谢谢。

虚拟机替代方案――仿真目标机

仿真目标机(Synthetic Target)将eCos作为Linux下的一个进程来运行,没有硬件的麻烦,没有虚拟机的问题。这次尝试使用虚拟机的惨败使我更加看中仿真目标机。仿真目标机可以满足学习eCos的部分需求(与硬件有关的部分不能通过仿真目标机完成),更重要的是可以使用仿真目标机调试硬件无关组件,例如HTTP服务器,对加快组件开发和测试是非常有帮助的。

版权声明:本文为博主原创文章,转载请保持文章完整,保留作者信息。

使用eCos图形化配置工具管理eCos应用程序

eCos图形化配置工具可以说是eCos的核心和亮点之一。图形化配置工具为开发人员提供了模板、组件管理、配置、单元测试、自动生成Makefile等功能,同时提供了非常友好的操作界面和非常便捷的配置手段。...
  • zoomdy
  • zoomdy
  • 2013年10月21日 12:53
  • 1491

S3C2416裸机开发系列十七_GCC下Fatfs的移植

对于固态存储器,其存储容量可以很大,往往需要一款文件系统对存储器用户数据进行组织文件的管理。它对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索。在嵌入式系统中,往往需要采用w...

EasyBoot中文启动光盘制作教程

EasyBoot中文启动光盘制作教程 2007年05月10日 星期四 23:10 原版的系统安装盘仅能实现单一系统的初始安装,缺少硬盘分区(Windows XP除外)、系统恢复...

制作WIN7+XP+DOS+PE多系统启动光盘

本文详细介绍了怎样制作自定义的多系统启动光盘的流程,从零开始!达到完成系统盘制作的目的。...

BIOS 和 EFI 介绍及其启动光盘制作

原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-biosefi-boot/index.html 概述 现在不少安装光盘同时满足...

制作自己的Linux系统与启动光盘(2)

制作支持 Legacy BIOS 启动光盘的步骤 2.1 step1 准备 isolinux.bin 和工作目录 在准备制作 ISO 的目录里添加一个子目录,比如 isolinux/ ,然后放入 ...
  • junht
  • junht
  • 2012年07月31日 16:00
  • 11655

用isolinux制作自己的Linux系统与启动光盘

俺最后发现isolinux这个东西还是不错的,可以支持大文件系统。        关于isolinux的东西网络上介绍的不是很多,下边是俺做过的一些尝试: 步骤一:        制作一个lin...
  • guoggn
  • guoggn
  • 2014年09月23日 16:29
  • 355

制作自己的Linux系统与启动光盘(1)

在刚接触Linux的时候,就想把自己编译好的linux内核放在虚拟机中启动,刚开始时一筹莫展,后来在IBM的linux文档库中发现了一种制作linux iso的方法(《BIOS和 EFI 介绍及其启...
  • junht
  • junht
  • 2012年07月31日 15:58
  • 3053

使用isolinux制作Linux启动光盘

以前我们很多启动盘采用的是loadlin引导linux内核的模式进行的(比如早期的slackware)。也就是采用win98的dos启动,然后通过loadlin工具引导我们的自己的linux内核,解开...

制作自己的Linux系统与启动光盘(3)

丰富的isolinux 应用 本小节讲述如何完美的应用isolinux进行启动光盘的优化。上节我们已经成功的制作好了一个可启动的光盘,但是那仅是一个功能简单的启动盘,如何制作像系统安装盘一样的,功能...
  • junht
  • junht
  • 2012年07月31日 16:08
  • 5006
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:制作RedBoot启动光盘以及下载调试eCos应用
举报原因:
原因补充:

(最多只允许输入30个字)