eCos嵌入式系统的CF卡启动引导
摘 要:eCos是一种可裁剪、可配置的实时嵌入式系统,但对基于X86的Cpu支持有限,本文的工作为eCos系统增加了CF的引导方式,为X86提供了通用的启动方式。
关键词:eCos;操作系统启动;Comact Flash ;MBR
1 概述
eCos是一种可裁剪、可配置的实时嵌入式系统, eCos是一个开放源代码的实时嵌入式操作系统。为了满足嵌入式系统应用需要,eCos被专门设计来可以运行在32位和G4位微处理器上。目前,eCos已经成功移植到ARM7, PowerPC, MIPS等体系上。eCos它遵循基于Netscape Public License NPL)之上的Cygnus eCos Public License(CEPL) , NPL是基于GPL (General Public License)精神的新的许可证,(CEPL) , NPL是基于GPL (General Public License)精神的新的许可证,但是它保持了对源码更多的控制和所有权。
我们参与的工作是基于eCos的流量测试仪,系统在需要存储在IDE接口的CF卡上,但目前eCos仅支持从软盘引导,因此需要对eCos的启动部分增加了对CF卡的支持。
IDE接口CF(Compact Flash ),在硬件平台Bios中认为就是一个IDE的硬盘,因此CF基本上等同硬盘。
2 CF卡引导和CF卡数据结构
2 .1 硬盘(CF卡)数据的组织
一般硬盘参数是指(CHS (Cylinder/Head/Sector)参数。硬盘的容量还非常小的时候,硬盘采用与软盘类似的结构生产。也就是硬盘盘片的每一条磁道都具有相同的扇区数。由此有CHS参数,既柱面数(Cylinders),磁头数 (Heads),扇区数(Sectors per track),以及相应的寻址方式。其中:
磁头数表示硬盘总共有几个磁头,也就是有几面盘片,最大为256,用8个二进制位存储;柱面数表示硬盘每一面盘片上有几条磁道,最大为1024,用10个二进制位存储;扇区数表示行条磁道上有几个扇区,最大为63,用6个二进制位存储,每个扇区一般是512个字节。
2.2 主引导扇区
和软盘不同,为了有效管理硬盘空间,硬盘空间被分为若干个分区。如果eCos采用的软盘启动方式,操作系统映象被拷贝到软盘的0磁头、0磁道、1扇区开始的连续空间中。eCos启动时,由Bios读软盘的第一个扇区就可以开始加载操作系统映象。而在硬盘系统中,由于有了分区表,情况就变得复杂了。
为了区别具体引导操作系统的扇区,一般把硬盘的第一个扇区称为主引导扇区(Boot Sector),图3为主引导扇区结构。
Mast Boot Record (446字节)
分区信息1(16字节)
分区信息2(16字节)
分区信息3(16字节)
分区信息4(16字节)
55
AA
图3硬盘主引导扇区结构
3 CF引导引导过程
对eCos引导程序的完善主要修改了pcmb.inc中的初始化宏hal cpu_ inito。
Pcmb.inc是用汇编语言写的,修改后的操作系统映象加载流程可用如下形式语言描述:
开始加载
调用函数diskPram获得CF卡数据;
1)设置ES:BX缓冲区(数据缓冲区)
2)调用Int 13H进行磁盘读写需
3)初始化磁盘驱动器参数
4)读取分区信息、计算操作系统映象长度,计算要读多少个扇区
5)eCos逐次加载一个扇区
6)如果是软盘启动,关闭软驱电机
结束加载
diskPram其主要功能是获取磁盘参数。diskParm获取5个磁盘参数,即磁头数(MaxCyl)、扇区数(sectorsNum),引导扇区起始磁头号(Firsthead)、引导扇区起始柱面与扇区号(Firstcylsec)。磁头数用于判断柱面结束,扇区数用于判断磁道结束,引导扇区起始磁头号、扇区号、柱面号用于定位引导扇区位置。
4 总结
通过对eCos的引导过程的分析,本文增加IDE CF卡的支持引导的支持,主要对pcmb.inc文件进行了修改,实现从硬盘类CF卡引导的目的。并编写了对应的硬盘分区和映像文件操作工具。方便了本项目的后续开发工作。
参考文献:
[1] Anthony J.Massa.Embedded Software Development with eCos[M].Prentice Hall R,2002.
[2] Qing Li,Caroline Yao.Real—Time Concepts for Embedded Systems[M].CM PBooks,2003.
[3] 蒋句平.嵌入式可配置实时操作系统 eCos开发与应用[M].北京:机械工业出版社,2004.
[4] 吴非,樊晓光.嵌入式实时操作系统 UC/OS—II与 eCos的比较[J].单片机与嵌入式系统应用,2004,(10):15-17.
[5] eCos 操作系统官方网站[EB/OL],
http://www.751com.cn developer ,2002
eCos嵌入式系统的CF卡启动引导下载如图片无法显示或论文不完整,请联系qq752018766