- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nucleus源码分析—IO驱动
大唐微电子技术有限公司
作者名称 蔡维林
页数 修改后版本 修改者 修改日期 修改说明 备注 10
Document information File Location D:\××××\×××××××.doc(请说明在文档服务器上的位置) Last saved 2004-6-14 9:28
目 录
概述 3
1.1 功能描述 3
1.2 实现原理 3
1.3 文件信息 3
数据结构 3
程序分析 6
1.4 ioc.c程序 6
1.4.1 创建驱动 6
1.4.2 删除驱动 7
1.4.3 驱动程序操作请求 8
1.4.4 释放驱动 8
1.4.5 挂起驱动 9
1.5 ioce.c文件程序 10
1.6 iof.c程序 11
1.7 ioi.c程序 11
概述
功能描述
I/O设备管理组件负责所有的Nucleas PLUS 输入输出设备。Nucleas PLUS I/O提供标准的I/O设备接口:初始化、分配、释放、输入输出、状态、终止。该接口通过一个通用的数据结构来操作,使得应用程序以相似的或完全相同的方式处理不同的外围设备。任务在等待一个外部设备时可以被挂起,I/O设备可以被用户动态创建和删除。
实现原理
应用程序和驱动程序交流信息主要是通过一个叫做“操作请求结构NU_DRIVER_REQUEST”的数据结构来完成,应用程序事先把要请求的操作信息填入NU_DRIVER_REQUEST,然后再通过NU_Request_Driver函数把NU_DRIVER_REQUEST信息传递给驱动程序,驱动程序根据NU_DRIVER_REQUEST中的信息作相应的处理,包括有设备初始化、分配、释放、输入输出、状态、终止。
文件信息
I/O组件(I/O)包括7个文件,每个文件命名如下:
文件名称 内容描述 IO_DEFS.H 定义IO组件特定的数据结构和常量。 IO_EXTR.H 定义IO组件的外部接口函数。 IOD.C 定义IO组件的全局数据结构。 IOI.C IO组件的初始化代码 IOF.C 提供IO组件信息的函数 IOC.C IO组件的核心函数,实现基本的输入输出 IOCE.C 具有外壳检测IOC.C中的函数
数据结构
驱动初始化结构:
struct NU_INITIALIZE_STRUCT
{
VOID *nu_io_address; /* IO寄存器基址 */
UNSIGNED nu_logical_units; /* 逻辑单元数目 */
VOID *nu_memory; /* 内存指针 */
INT nu_vector; /* 设备所用的中断向量号 */
};
指派结构:
struct NU_ASSIGN_STRUCT
{
UNSIGNED nu_logical_unit; /* 逻辑单元数目 */
INT nu_assign_info; /* 追加指派信息 */
};
释放结构:
struct NU_RELEASE_STRUCT
{
UNSIGNED nu_logical_unit; /* 逻辑单元数目 */
INT nu_release_info; /* 追加释放信息 */
};
输入结构:
struct NU_INPUT_STRUCT
{
UNSIGNED nu_logical_unit; /* 逻辑单元数目 */
UNSIGNED nu_offset; /* 输入偏移量 */
UNSIGNED nu_request_size; /* 请求输入数据量大小 */
UNSIGNED nu_actual_size; /* 实际输入数据量大小 */
VOID *nu_buffer_ptr; /* 输入缓冲区指针 */
};
输出结构:
struct
您可能关注的文档
最近下载
- 艾滋病防治知识讲座.pptx VIP
- T∕ZZB 2086-2021 塑料拖链标准规范.docx VIP
- 2025年文化教育职业技能考试-钢琴调律师考试近5年真题集锦(频考类试题)带答案.docx
- 高清版40篇短文搞定3500词.pdf VIP
- 分流职员申请表标准模板.docx VIP
- 人教版(2024年新教材)七年级上册英语Unit 2 We're Family 单元整体教学设计.docx VIP
- 急诊手术患者围术期肺保护管理策略专家共识解读PPT课件.pptx VIP
- 基于临床实践出血性疾病动态危急值专家共识2024版解读.pptx VIP
- 绘本《我家是动物园》.ppt VIP
- 广州数控GSK928TF 车床数控系统 使用手册 速印版2009-5-13.pdf
文档评论(0)