首页 > 其他分享 >制作RedBoot启动光盘以及下载调试eCos应用

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

时间:2022-11-20 21:01:12浏览次数:73  
标签:光盘 启动 虚拟机 软盘 RedBoot redboot eCos 串口


不是我对软盘有什么意见,反正都是通过虚拟机启动,无论是软盘还是光盘都只是个镜像文件。问题是我使用的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作为光盘镜像。启动后截图如下。

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

 

 

在真实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服务器,对加快组件开发和测试是非常有帮助的。

标签:光盘,启动,虚拟机,软盘,RedBoot,redboot,eCos,串口
From: https://blog.51cto.com/zoomdy/5872040

相关文章

  • 获取eCos堆栈使用情况
    在嵌入式系统中,堆栈是静态分配的,不会依据堆栈的使用情况自动增加堆栈深度,存在堆栈溢出的风险。一旦发生堆栈溢出,后果很严重,可能会立即导致死机,也可能埋了一颗定时炸弹,在随后......
  • eCos疑问——两个cyg_user_start函数
    mingdu.zheng<at>gmail<dot>com 两个cyg_user_start函数在阅读eCos代码的过程中发现整个系统定义了两个cyg_user_start函数,一个位于packages/infra/<version>/src/......
  • ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本
    ks.cfg文件怎么实现读取光盘(CDROM)上的内容并执行自定义脚本我们知道linux系统安装过程中,要想实现自动化安装,一般都是利用Kickstart这个工具实现,最重要的就是其配......
  • 在Windows 2000 Server系统光盘中集成SP4更新程序
    Windows2000Server操作系统以其稳定的性能依然服役于很多作为服务器的计算机中,目前其最新版本已经集成了SP4累积更新程序。本教程将介绍在未集成任何ServicePack的Wind......
  • Kafka简明教程(三)Kafka‘s Ecosystem
    ​​LinkedinBurrow​​:Burrow是linkedin开源的一个监控ApacheKafka的工具,burrow可以将消费者滞后检查作为一项服务来对外提供。它监视所有消费者的承诺偏移量,并根据需要......
  • ExpressBurn Plus for Mac(mac光盘刻录软件)中文版
    有没有适用于macOS操作系统的光盘刻录软件?这里带来ExpressBurnPlusforMac。ExpressBurnMac中文版让用户可以快速完整的将音频,视频和数据刻录到Mac上的CD,DVD和蓝光光盘......
  • 光盘和U盘装linux系统
    一.光盘装linux系统和windows系统首先,下载需要安装系统的镜像,准备一个空白盘,使用UltraISO刻录镜像然后,光盘插入安装系统的机器,开机按f2、f8和f12的其中一个,进入boot,将CD-......
  • 光盘传播病毒
    我们都知道病毒很强大,它可以借助一切可读写的物件进行传播,可以说是遍地开花,那么,光盘能传播病毒吗?哪些移动存储设备可以传播病毒呢?今天我们就跟随小编一起来了解关于这方面......