CN1632745A - 运用ide接口的多个设备的文件系统操作方法 - Google Patents
运用ide接口的多个设备的文件系统操作方法 Download PDFInfo
- Publication number
- CN1632745A CN1632745A CN 200310104067 CN200310104067A CN1632745A CN 1632745 A CN1632745 A CN 1632745A CN 200310104067 CN200310104067 CN 200310104067 CN 200310104067 A CN200310104067 A CN 200310104067A CN 1632745 A CN1632745 A CN 1632745A
- Authority
- CN
- China
- Prior art keywords
- parameter
- equipment
- file system
- ide interface
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种嵌入式操作系统下实现同时运用多个设备的文件系统操作方法,特别涉及一种VxWorks操作系统下运用具有IDE接口的多个设备的文件系统操作方法,本发明就是通过以下步骤:在DOS下分区、格式化设备;读取设备的参数;修改参数;关闭嵌入式操作系统原代码的设备驱动程序;编写设备驱动程序;加载编写的每个设备驱动程序;使得文件系统可以既支持第1个IDE接口插槽的设备的文件系统操作,又支持另外多个IDE接口插槽的设备的文件系统操作,方便文件系统操作;扩大嵌入式操作系统的运用范围。
Description
技术领域
本发明涉及一种嵌入式操作系统下实现同时运用多个设备的文件系统操作方法,特别涉及一种VxWorks操作系统下运用具有IDE接口的多个设备的文件系统操作方法。
背景技术
嵌入式操作系统特别是VxWorks操作系统包含用于标准IDE接口的设备的文件系统,该设备是使用标准IDE接口的硬盘或者电子盘,使得文件系统可以随意与设备驱动程序连接。嵌入式操作系统特别是VxWorks操作系统包括用于串行通信线、磁盘、RAM磁盘、任务间通信设备和网络上设备的设备驱动程序。同时应用程序开发人员根据需要,可以写入额外的驱动程序。嵌入式操作系统容许不再引导系统,而是动态地安装和拆去驱动程序。
嵌入式操作系统特别是VxWorks操作系统的文件系统的原代码提供的设备驱动程序只支持第1个接口的设备的文件操作;但一些特定的应用中,需要在多个设备中进行文件操作,那么此时原代码提供的设备驱动程序就不能支持其它IDE接口的设备的正常工作,无法使用多个具有IDE接口的设备。
发明内容
本发明的目的是使嵌入式操作系统特别是VxWorks操作系统文件系统在使用多个设备时能正常工作,扩大嵌入式操作系统特别是VxWorks操作系统的应用范围。
为实现所述目的本发明的操作方法为:
(1)用DOS系统启动盘把系统启动起来,在DOS下分区、格式化设备;
(2)在本机BIOS系统下读取设备的参数,包括柱面、磁盘大小、磁盘读写头、中断号的参数;
(3)在板级支持软件包中修改参数,包括柱面、磁盘大小、磁盘读写头的参数;
(4)在板级支持软件包中进行中断号参数修改;
(5)板级支持软件包中关闭嵌入式操作系统原代码的设备驱动程序;
(6)编写设备驱动程序:
A、根据硬盘设备号、IDE接口控制号进行设备参数设定;
B、设备初始化;
C、把设备设置为DOS文件系统;
D、设置输入/输出系统缺省路径;
(7)在应用程序的入口处,加载编写的每个设备驱动程序。编程人员即可在多个具有IDE接口的设备进行文件系统的操作。嵌入式操作系统特别是VxWorks操作系统与硬件的层次关系分4层:
第一层是硬件设备。
第二层是板级支持软件包,也称BSP,对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化、中断产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等,每个板级支持包包括一个ROM启动或其它启动机制。
第三层是嵌入式操作系统的微内核和基本模块wind是VxWorks操作系统的微内核,它的主要特点包括:快速多任务
切换、抢占式任务调度、任务间通信手段多样化等,还有任务间切换时间短、中断延迟小、网络流量大等特点。
Components是VxWorks操作系统的基本模块,包括:调试、输入/输出系统、文件系统、网络等。
第四层是设备驱动程序,包括:
语句逻辑层:程序语句的逻辑是否正确
功能层:设计的功能是否可以实现
任务层:任务的划分、调度是否合理
系统层:系统的可靠性、效率
在嵌入式操作系统特别是VxWorks操作系统中,文件系统没有被束缚到设备或驱动程序上,一个设备可以与任何文件系统相联。依靠文件系统、设备驱动程序和输入/输出系统之间具有同样的标准接口,程序员编写的设备驱动程序可以使用嵌入式操作系统特别是VxWorks操作系统中的文件系统。其文件操作系统接口关系为:
设备驱动程序是操作设备的软件模块,它完成简单的操作,把数据写入设备,从设备中读取数据。在输入/输出系统中初始化设备驱动程序,应用程序调用的一般文件系统函数,如read()--读文件函数,实际上是嵌入式操作系统调用下层驱动函数接口,也称xxDriver()上驱动程序指定的程序,如xxread()--读文件函数。
根据硬盘设备号、IDE接口控制号进行设备参数设定,其参数设定为:
控制器号设为0,第1个IDE接口插槽的硬盘或者电子盘进行文件系统的操作,如设备为C盘,设备号选0;为D盘,设备号选1。
控制器号设为1,第2个具有IDE接口插槽的硬盘或者电子盘进行文件系统的操作,如设备为C盘,设备号选0;为D盘,设备号选1。
通过设定参数,即可在多个具有IDE接口的硬盘或者电子盘进行文件系统的操作。
嵌入式操作系统特别是VxWorks操作系统中文件系统的原代码提供的设备驱动程序只支持第1个IDE接口插槽的设备的文件操作,本发明就是通过新的驱动程序替代原代码驱动程序,使得文件系统可以既支持第1个IDE接口插槽的设备的文件系统操作,又支持另外多个IDE接口插槽的设备的文件系统操作,方便文件系统操作;扩大嵌入式操作系统的运用范围。
附图说明
图1:嵌入式操作系统与硬件的层次关系示意图
图2:文件操作系统接口关系图
图3:本发明操作方法流程图
具体实施方式
以下为嵌入式操作系统特别是VxWorks操作系统下多个设备的文件系统操作方法的具体步骤,以第2个IDE接口的设备为电子盘的文件系统操作为例。其具体步骤为:
1.用DOS系统启动盘把系统启动起来,分区、格式化电子盘:
fdisk c:
format c:
2.进入本机的BIOS系统,读取电子盘的参数:其柱面为490、磁盘读写头为4、扇区为32、磁盘大小为32、电子盘中断号为0xf。
3.在Tornado\target\config路径下,复制pcPentium目录,并把复制的目录改名为mypcPentiumBSP,新建一个工程,在新建过程中选mypcPentiumBSP目录为新工程的板级支持软件包(BSP)。
4.板级支持软件包(BSP)中进行柱面、磁盘大小、磁盘读写头参数设置,Tornado\target\config\mypcPentiumBSP\sysLib.c中修改结构-ataTypes[][]参数:
/*************************************************/ /*******************修改前************************/ /*************************************************/ ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES]= { {{761,8,39,512,0xff}, /*ctrl 0 drive 0*/ {761,8,39,512,0xff}}, /*ctrl 0 drive 1*/ {{761,8,39,512,0xff}, /*ctrl 1 drive 0*/ {761,8,39,512,0xff}}, /*ctrl 1 drive 1*/ }; /**********************************************************/ /***********************修改后*****************************/ /**********************************************************/ ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES]= { {{761,8,39,512,0xff}, /*ctrl 0 drive 0*/ {761,8,39,512,0xff}}, /*ctrl 0 drive 1*/ {{490,4,32,512,0xff}, /*ctrl 1 drive 0*/ <!-- SIPO <DP n="5"> --> <dp n="d5"/> {761,8,39,512,0xff}}, /*ctrl 1 drive 1*/ }; /**********************************************************/
5.板级支持软件包(BSP)中进行中断设置,Tornado\target\config\mypcPentiumBSP\pc.h中
修改中断号ATA1_INT_LVL参数:
/*************************************************/
/*******************修改前************************/
/*************************************************/
#define ATA1_INT_LVL 0x09
/**********************************************************/
/***********************修改后*****************************/
/**********************************************************/
#define ATA1_INT_LVL 0x0f
6.板级支持软件包(BSP)中关闭VxWorks操作系统原代码的设备驱动程序,修改Tornado\target\config\comps\src\usrAta.c中函数usrAtaInit():
/*************************************************/ /*******************修改前************************/ /*************************************************/ void usrAtaInit(void) { int ix; <!-- SIPO <DP n="6"> --> <dp n="d6"/> ATA_RESOURCE *pAtaResource; for(ix=0;ix<ATA_MAX_CTRLS;ix++) { pAtaResource=&ataResources[ix]; if(pAtaResource->ctrlType==IDE_LOCAL) ataDrv (ix, pAtaResource->drives, pAtaResource->intVector, pAtaResource->intLevel, pAtaResource->configType, pAtaResource->semTimeout, pAtaResource->wdgTimeout); } } /**********************************************************/ /***********************修改后*****************************/ /**********************************************************/ void usrAtaInit(void) { int ix; ATA_RESOURCE*pAtaResource; /*for(ix=0;ix<ATA_MAX_CTRLS;ix++) { <!-- SIPO <DP n="7"> --> <dp n="d7"/> pAtaResource=&ataResources[ix]; if(pAtaResource->ctrlType==IDE_LOCAL) ataDrv (ix, pAtaResource->drives, pAtaResource->intVector, pAtaResource->intLevel, pAtaResource->configType, pAtaResource->semTimeout, pAtaResource->wdgTimeout); }*/ }
7.编写电子盘驱动程序,根据电子盘设备号(drive)、IDE口控制号(ctrl)进行电子盘参数设定如:C盘drive=0,E盘drive=1;第1个IDE口ctrl=0,第2个IDE口ctrl=1,第3个IDE口ctrl=2,第4个IDE口ctrl=3。
/*********电子盘驱动程序******/ STATUS DiskFunc() { /******电子盘为C盘,第2个IDE口*****/ int ctrl=1,drive=0; IMPORT ATA_RESOURCE ataResources[]; ATA_RESOURCE *pAtaResource=&ataResources[ctrl]; int fd; <!-- SIPO <DP n="8"> --> <dp n="d8"/> /********初始化电子盘******/ if(ataDrv(ctrl,pAtaResource->drives, pAtaResource->intVector,pAtaResource->intLevel, pAtaResource->configType,pAtaResource->semTimeout, pAtaResource->wdgTimeout)==ERROR) { printErr(″Could not initialize.\n″); return(ERROR); } printf(″Attaching to ATA disk device....″); /**********把电子盘设定为DOS文件系统********/ if(usrAtaConfig(ctrl,drive,″/atal″)==ERROR) { printErr(″usrAtaConfig failed.devName=%s\n″, ATA_NAME); return(ERROR); } /**********设置输入/输出系统缺省路径*******/ ioDefPathSet(″/atal″); /**************建目录*******************/ mkdir(″/atal/pathl″); <!-- SIPO <DP n="9"> --> <dp n="d9"/> }
8.在应用程序的入口处,加载编写的电子盘驱动程序
/*********程序入口*********/
void usrAppInit(void)
{
#ifdef USER_APPL_INIT
USER_APPL_INIT; /*for backwards compatibility*/
#endif
/******入口处加载电子盘驱动程序****/
DiskFunc();
}
Claims (1)
1、一种运用多个具有IDE接口的设备的文件系统操作方法,所述的方法包括以下步骤:
(1)用DOS系统启动盘把系统启动起来,在DOS下分区、格式化设备;
(2)在本机BIOS系统下读取设备的参数,包括柱面、磁盘大小、磁盘读写头、中断号的参数;
(3)在板级支持软件包中修改参数,包括柱面、磁盘大小、磁盘读写头的参数;
(4)在板级支持软件包中进行中断号参数修改;
(5)板级支持软件包中关闭嵌入式操作系统原代码的设备驱动程序;
(6)编写设备驱动程序:
A、根据硬盘设备号、IDE接口控制号进行设备参数设定;
B、设备初始化;
C、把设备设置为DOS文件系统;
D、设置输入/输出系统缺省路径;
(7)在应用程序的入口处,加载编写的每个设备驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310104067 CN1632745A (zh) | 2003-12-22 | 2003-12-22 | 运用ide接口的多个设备的文件系统操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310104067 CN1632745A (zh) | 2003-12-22 | 2003-12-22 | 运用ide接口的多个设备的文件系统操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1632745A true CN1632745A (zh) | 2005-06-29 |
Family
ID=34842938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200310104067 Pending CN1632745A (zh) | 2003-12-22 | 2003-12-22 | 运用ide接口的多个设备的文件系统操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1632745A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377118C (zh) * | 2006-03-16 | 2008-03-26 | 浙江大学 | 基于sram的嵌入式文件系统的实现方法 |
CN102736864A (zh) * | 2012-06-19 | 2012-10-17 | 杭州海康威视数字技术股份有限公司 | 一种硬盘格式化的方法及装置 |
CN108121627A (zh) * | 2017-12-13 | 2018-06-05 | 苏州长风航空电子有限公司 | 一种VxWorks操作系统调试方法 |
CN108958813A (zh) * | 2018-06-13 | 2018-12-07 | 北京无线电测量研究所 | 文件系统构建方法、装置及存储介质 |
CN108959130A (zh) * | 2018-04-29 | 2018-12-07 | 浙江工规科技有限公司 | 基于嵌入式系统的存储系统 |
CN110300178A (zh) * | 2019-07-02 | 2019-10-01 | 迈普通信技术股份有限公司 | 通信设备、业务卡、主控卡、文件访问方法及装置 |
-
2003
- 2003-12-22 CN CN 200310104067 patent/CN1632745A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377118C (zh) * | 2006-03-16 | 2008-03-26 | 浙江大学 | 基于sram的嵌入式文件系统的实现方法 |
CN102736864A (zh) * | 2012-06-19 | 2012-10-17 | 杭州海康威视数字技术股份有限公司 | 一种硬盘格式化的方法及装置 |
CN102736864B (zh) * | 2012-06-19 | 2016-03-16 | 杭州海康威视数字技术股份有限公司 | 一种硬盘格式化的方法及装置 |
CN108121627A (zh) * | 2017-12-13 | 2018-06-05 | 苏州长风航空电子有限公司 | 一种VxWorks操作系统调试方法 |
CN108121627B (zh) * | 2017-12-13 | 2021-03-09 | 苏州长风航空电子有限公司 | 一种VxWorks操作系统调试方法 |
CN108959130A (zh) * | 2018-04-29 | 2018-12-07 | 浙江工规科技有限公司 | 基于嵌入式系统的存储系统 |
CN108958813A (zh) * | 2018-06-13 | 2018-12-07 | 北京无线电测量研究所 | 文件系统构建方法、装置及存储介质 |
CN110300178A (zh) * | 2019-07-02 | 2019-10-01 | 迈普通信技术股份有限公司 | 通信设备、业务卡、主控卡、文件访问方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1716204A (zh) | 用于虚拟机环境中的仿真设备的开发的系统和方法 | |
CN1592227A (zh) | 用于提供网格服务生存期管理的方法和系统 | |
CN1924863A (zh) | 在远程计算机上运行为因特网访问而配置的软件的方法和系统 | |
CN1781091A (zh) | 用于虚拟化包括bios运行时间服务的基本输入/输出系统(bios)的系统和方法 | |
CN1841336A (zh) | 计算机测试方法 | |
CN1776619A (zh) | 一种基于启动装载程序实现嵌入式系统运行的方法 | |
CN1632745A (zh) | 运用ide接口的多个设备的文件系统操作方法 | |
CN1908910A (zh) | 备份及恢复数据的方法 | |
CN1696910A (zh) | 有效地打补丁 | |
CN1877521A (zh) | 跨操作系统的嵌入式系统板级支持包的实现方法 | |
CN1238211C (zh) | 车载设备用嵌入式操作系统启动方法 | |
CN1831760A (zh) | 应用自动编译框架来快速开发嵌入式系统的方法及装置 | |
CN1949173A (zh) | 一种软件的安装方法及其装置 | |
CN1129846C (zh) | 程序执行方法 | |
CN1315053C (zh) | 网络计算机bios的刷新方法 | |
CN1276350C (zh) | 经由缓冲区更新基本输入输出系统的系统及方法 | |
CN1484143A (zh) | 多功能嵌入系统的实现方法 | |
CN1269023C (zh) | 一种构建多板嵌入式系统的方法 | |
CN1288548C (zh) | 基于类别创建驱动构件对象实现设备驱动程序多态的方法 | |
CN1904828A (zh) | 动态开机系统及方法,与操作系统映像文件建构方法 | |
CN1456990A (zh) | 应用程序并行处理系统和应用程序并行处理方法 | |
CN1567232A (zh) | 嵌入式系统的测试装置及测试方法 | |
CN1637711A (zh) | 使用工作调度程序初始化多装置的方法 | |
CN1294494C (zh) | 检测主机usb接口传输率的方法 | |
CN1701585A (zh) | 配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20050629 |