嵌入式实时操作系统的ram盘扩展

嵌入式实时操作系统的ram盘扩展

ID:23901525

大小:51.50 KB

页数:6页

时间:2018-11-11

嵌入式实时操作系统的ram盘扩展_第1页
嵌入式实时操作系统的ram盘扩展_第2页
嵌入式实时操作系统的ram盘扩展_第3页
嵌入式实时操作系统的ram盘扩展_第4页
嵌入式实时操作系统的ram盘扩展_第5页
资源描述:

《嵌入式实时操作系统的ram盘扩展》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、嵌入式实时操作系统的RAM盘扩展

2、第1摘要:介绍了一种在嵌入式实时操作系统内核(以下简称实时内核)上实现RAM盘的方法,配合接受用户命令的Shell任务,可实现嵌入式系统的多任务动态加载和监控,扩展了实时内核的应用领域。实时内核采用目前十分流行的内核μC/OS-Ⅱ,硬件不台为通用现场总线控制器系统。1嵌入式RTOS目前,嵌入式RTOS的应用领域越来越广泛。已经有80多个RTOS厂商生产面向8位、16位、32位、甚至64位微处理器的RTOS产品。商业的实时操作系统如Vxotorola68000系列,以及Intel80x86等各种

3、处理器上,在世界控制领域取得了一席之地。μC/OS-Ⅱ的可应用领域非常广阔,涵盖了几乎所有的实时应用。μC/OS-Ⅱ是完全的,全部源代码都可以从Inter上获得。μC/OS-Ⅱ是面向中小型嵌入式系统的。如果包含全部的功能模块(信号量、消息邮箱、消息队列及相关函数),编译后的μC/OS-Ⅱ内核大约有6KB;如果只保留最核心的代码,则可压缩到3KB,这使得μC/OS-Ⅱ可以用于更小模块的应用系统。同时,由于系统的可扩展性,稍加修改可以用于更大模块的系统上。RAM的占用与系统中的任务数有关,任务的堆栈要占用大量的RAM空间,堆栈的大

4、小取决于任务的局部变量、缓冲区大小及可能的中断嵌套的层数。对于一般的中小系统,任务堆栈可以取几百字节到几千字节。对于频率中断和高吞吐率的系统,要为任务预留足够的堆栈空间。本系统中为每个任务分配了512KB的堆栈文凭间,并有堆栈越界检查。采用μC/OS-Ⅱ所遇到的主要问题是μC/OS-Ⅱ本身不带文件系统,缺乏调试工具和手段。为了方便调试和日后的管理操作,基于μC/OS-Ⅱ的开放源代码和可扩展性,笔者将Linux的RAM盘、文件系统和用户Shell移植到合并μC/OS-Ⅱ上并编写了内存管理模块,实现内存的动态分配和释放。系统中运行

5、的任务可以对RAM盘进行文件操作,文件系统可以为任务保存数据并提供了统一的接口。通过Shell任务,用户可以登录到系统中,运行或者挂起任务,以处理不同的通讯协议,实现任务的动态管理。在调试过程中,可以通过命令查看各个任务的运行状态。而任务以文件的形式保存在RAM盘中,不同种类的任务保存在不同的目录中,方便了管理和维护。4RAM盘的扩展方法RAM盘采用了和LinuxEXT2系统类似的文件系统。EXT2是一种高效、安全的文件系统。图2是EXT2的逻辑布局。500)this.style.ouseg(this)">它由一个引导块和重复

6、的块组组成,每个块组又由超级块、组描述符表、块位图、索引节点位图、索引节点表、数据区组成。文件以树型目录形式组成。不同点在于磁盘文件系统的操作单元是磁盘块,而RAM盘所操作的单元是内存块。在笔者为GPFC设计的RAM盘中,将内存最高端的4MB划分为RAM盘空间,每一个逻辑块为512字节。限于篇幅所限,关于EXT2系统的细节,请感兴趣的读者参考有关Linux文件系统的资源,本文主要介绍如何在RAM盘中实现及主要的数据结构。其中引导块存系统的引导代码,由于RAM盘不用来引导系统,所以可不必设定引导块。超级块用来存放EXT2文件系统

7、整体信息的数据结构,是EXT2的核心所在。超级块记录文件系统当前状态,盘有多大,能存放多少文件,何处可以找找到空闲和用于文件系统管理的信息。用于管理磁盘的超级块非常复杂,用于RAM盘则可对其进行简化,简化后的ram_super_block结构如下:structram_super_block{longs_inodes_count;/*文件系统中节点总线*/longs_blocks_count;/*文件系统中的块总数*/longs_r_blocks_cout;/*为超级用户保留的块数*/longs_free_blocks_coun

8、t;/*文件系统中空闲块总数*/longs_free_inodes_coutnt;/*文件系统中空闲节点总数*/longs_first_data_block;/*文件系统中的第一个数据块*/longs_log_block_size;/*系统逻辑块的大小*/shorts_inode_size;/*索引节点结构的大小*/shorts_state;/*文件系统的状态*/time_ts_e;/*超级块最后一次修改的时间*/}在文件系统中每一个文件(包含目录)占据一个索引节点表项。索引节点是一个记录文件信息的数据结构dinode。访问文

9、件,其它就是寻找文件对应的索引节点。索引节点集中保存在索引节点表中,索引节点表的第一顶固定为根目录对应的索引节点。用于管理RAM盘文件的dinode定义如下:structDinode{shortdi_node;/*文件模式:是文件还是目录,是可读、可写还是可执行*/short

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。