DB43/T 2260-2021 信息技术应用创新工程建设规范 第9部分:驱动开发通用技术要求.pdf

DB43/T 2260-2021 信息技术应用创新工程建设规范 第9部分:驱动开发通用技术要求.pdf
仅供个人学习
反馈
标准编号:
文件类型:.pdf
资源大小:1.8 M
标准类别:电力标准
资源ID:388680
下载资源

标准规范下载简介

DB43/T 2260-2021 信息技术应用创新工程建设规范 第9部分:驱动开发通用技术要求.pdf

ICS 01.140.20 CCS L 70

DB43/T 2260—2021

信息技术应用创新工程建设规范

地下连续的墙施工方案Engineering specification for theApplication InnovationProjectofInformationTechnology Part 9:General technical requirements of driver developing

湖南省市场监督管理局发布

DB43/T 22602021

前言: 111 引言 V 范围. 2规范性引用文件 5 术语和定义 4缩略语.. 2 5核内驱动总体要求 5.1编程要求... 5.2设备驱动模型. 3 5.3文件组织形式.. 3 5.4驱动程序实现. 5.5第三方技术使用... 6核内驱动具体要求.… 2 6.1字符设备驱动程序.... h 6.2块设备驱动程序. 2 6.3平台设备驱动程序. 6.4网络设备驱动程序. 9 6.5显示帧缓存设备驱动程序 10 6.6驱动程序的DKMS包制作 12 6.7驱动程序的调试验证.. 13 7常用外设开发要求. 13 7.1打印机驱动开发.... 13 7.2扫描仪驱动开发. 14 7.3手写液晶屏驱动开发, 15 附录A(资料性) 设备驱动分类 16 附录B(资料性) 驱动程序实现函数示例· 17 附录C(资料性) 驱动程序可调用的内核函数接口.. · 19 附录D(规范性) 驱动程序相关的结构体, 21 附录E(资料性) DKMS技术说明及示例... 23 附录F(资料性) 第三方内核模块打包· 26 附录G(资料性) 驱动程序的调试验证方法.. 32 附录H(资料性) 打印机驱动库配置文件示例, 36

DB43/T 22602021

本文件按照GB/T1.1一2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规 定起草。 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。 《信息技术应用创新工程建设规范》分为以下几个部分: 一一第1部分:台式微型计算机通用技术要求; 一一第2部分:便携式微型计算机通用技术要求; 一一第3部分:服务器通用技术要求; 一一第4部分:操作系统通用技术要求; 一一第5部分:操作系统硬件兼容性通用技术要求; 一一第6部分:操作系统软件兼容性通用技术要求; 一一第7部分:办公套件通用技术要求; 一一第8部分:电子公文通用技术要求; 一一第9部分:驱动开发通用技术要求; 一一第10部分:应用开发通用技术要求; 一一第11部分:迁移适配通用技术要求; 一一第12部分:国产化信息系统建设质量管理规范; 一一第13部分:国产化信息系统运行维护规范; 一一第14部分:国产化信息系统建设验收规范; 一第15部分:云计算通用技术要求。 本部分为第9部分。 本部分由湖南省国家密码管理局提出。 本部分由湖南省工业和信息化厅归口。 本部分起草单位:银河麒麟软件(长沙)有限公司、中国人民解放军国防科技大学、飞腾信息技术有 限公司、湖南湘江鲲鹏信息科技有限责任公司、湖南中软信息系统有限公司、湖南长城科技信息有限公 司、湖南国科微电子股份有限公司、长沙景嘉微电子股份有限公司、鹏城实验室。 本部分主要起草人:张铎、吴庆波、孙立明、刘云、王琦、刘正元、王勇军、李唯实、王晓川、马 俊、齐璇、蔡威、张月、吕超、董昱、曹泽文、付志鹏、

DB43/T 22602021

湖南省为深入贯彻国家网络强国战略,全面落实中央有关文件精神,部署开展湖南省信息技术应用 创新工程建设,保障全省各级党政机关关键信息基础设施信息安全和信息系统安全可靠运行。针对自主 可控产品体系初具规模,但相关产品和工程实施标准规范还很缺乏的现状,为了规范工程建设,加速工 程进度,扩大建设结果,同时有力提开自主可控产业发展水平,确保信息安全,由湖南省国家密码管理 局作为业务主管单位、湖南省工业和信息化厅作为技术归口单位,由中国人民解放军国防科技大学、中 国电子信息产业集团有限公司等单位与湖南省合作制定了《信息技术应用创新工程建设规范》地方标准, 《信息技术应用创新工程建设规范》主要由自主可控核心产品、典型应用、工程管理等方面的规范 组成,重点解决应用创新工程建设当中产品选型、应用开发、工程实施等基础环节的实际问题,可为应 用创新工程的用户使用单位、集成建设单位和相关产品研制单位,在产品和应用规范化、软硬件兼容适 配、工程实施标准等方面提供一般性指引。 《信息技术应用创新工程建设规范》未来将根据自主可控产业和应用创新工程的发展变化进行相应 的必要调整和补充。

DB43/T 22602021

信息技术应用创新工程建设规范

9部分:驱动开发通用技术要求

本文件提出了国产操作系统驱动程序开发的编程要求、设备驱动模型、文件组织形式、驱动程序实 现、第三方技术使用等总体要求,并针对字符设备、块设备、平台设备、网络设备、显示帧缓存设备的 驱动程序框架和开发提出具体要求。 本文件适用于国产操作系统上第三方驱动程序的开发,也为第三方驱动程序的调试验证提供指导

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件, 仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本 文件。 GB/T15272一1994程序设计语言C 3术语和定义 下列术语和定义适用于本文件。 3.1 驱动程序driver 驱动程序是硬件厂商根据操作系统编写的配置文件,操作系统通过驱动来与控制设备和进行通信。 3.2 设备device 是计算机系统中输入、输出设备(包括外存储器)的统称。设备对数据和信息起着传输、转送和存 储的作用。 3.3 总线bus 是计算机各种功能部件之间传送信息的公共通信干线。 3.4 设备驱动模型devicedrivermodel 设备驱动模型是操作系统内核为了管理硬件上的设备和对应的驱动程序所制定的一套软件体系。 3.5 平台总线platformbus 平台总线是操作系统内核定义的一种虚拟总线,操作系统内核通过平台总线来管理芯片内部集成设备, 3.6 平台设备驱动模型platformdevicedrivermodel

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文 亥日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用 GB/T15272一1994程序设计语言C

操作系统内核发生严重错误时所提示的信息,包括错误发生时的各个常用寄存器的 以及出错的可能原因

下列缩略语适用于本文件: ACPI:高级配置和电源管理接口(AdvancedConfiguration andPower ManagementInterfad CPU:中央处理器(CentralProcessingUnit) DKMS:动态内核模块支持(DynamicKernelModuleSupport) GNU:开源标准(GNU’sNotUnix) GPL:GNU通用公共许可证(GNUGeneralPublicLicense) I/0:输入/输出(Input/Output) NAPI:网络数据处理API(NewAPI) PMU:性能监视单元(PerformanceMonitoringUnit)

下列缩略语适用于本文件: ACPI:高级配置和电源管理接口(AdvancedConfiguration andPower ManagementInterface) CPU:中央处理器(CentralProcessingUnit) DKMS:动态内核模块支持(DynamicKernelModuleSupport) GNU:开源标准(GNU’sNotUnix) GPL:GNU通用公共许可证(GNUGeneralPublicLicense) I/0:输入/输出(Input/Output) NAPI:网络数据处理API(NewAPI) PMU:性能监视单元(Performance MonitoringUnit)

DB43/T 22602021

检查脚本来检查驱动程序代码的合规性。 为了保证内核升级时其内部调用符号的可用性,驱动程序代码分为内核框架层和核心代码逻辑层, 其中内核框架层实现与内核对接的部分,而核心代码逻辑层实现驱动模块的核心功能,编写时应符合以 下原则: a)不使用内核的API接口和数据结构; b)不使用内核的框架代码; c)不进行内核版本的判断处理; d)不使用宏进行同架构内CPU的判断处理; e) 二进制文件只包含需要保护的代码。

检查脚本来检查驱动程序代码的合规性。 为了保证内核升级时其内部调用符号的可用性 其中内核框架层实现与内核对接的部分,而核心代 下原则: a)不使用内核的API接口和数据结构; b)不使用内核的框架代码; c)不进行内核版本的判断处理; d) 不使用宏进行同架构内CPU的判断处理: e) 二进制文件只包含需要保护的代码。

应基于设备驱动模型来进行驱动程序开发,设备驱动模型分类参见附录A,设备和驱动程序均压 利总线上,并通过总线来实现对驱动程序和设备的管理。

应采用独立目录存放驱动程序的代码文件,驱动程序目录: a)应包含Makefile驱动程序构建文件,用于驱动程序的自动化编译; b)应使用.c源码文件来保存驱动程序实现,若驱动程序的功能复杂,通过多个源码文件来分类 存放驱动程序实现; c)应使用.h头文件来声明驱动程序中的函数、数据结构和变量,应安装内核提供的1inux/init.h、 linux/module.h和linux/kernel.h头文件,当需要调用内核功能时,驱动应使用上述头文件 中提供的函数接口来请求内核功能; d) 应使用Kconfig配置文件来描述驱动程序源码文件相关的内核配置菜单; e)宜使用Readme说明文档来介绍驱动程序的功能和使用方法。

DB43/T 22602021

驱动程序出口函数示例见附录B.2。

驱动程序的加载代码中应包含驱动程序的信息声明,包括“模块许可协议”、“版本”、“作者” 莫块描述”等信息,信息声明示例见附录B.3。

5.4.4remove卸载函数

驱动程序应实现remove卸载函数,在remove卸载函数中实现对驱动程序申请的设备、内存以及 sys文件系统节点等资源的释放。卸载程序中的资源释放示例见附录B.4。 若驱动程序中注册了回调函数,则remove卸载函数中应包含注销回调函数的操作。

5.4.5核心数据结构的可扩展性

应通过以下方式来实现驱动程序核心数据的可扩展性: a) 在数据结构中添加reserved保留字段; b) 在数据结构中添加表示私有数据的指针,扩展时只需要修改该指针所指向的数据结构, 面 无需修改核心数据结构。核心数据结构的可扩展性实现示例见附录B.5。

5.4.6probe探测函数

驱动程序应实现probe探测函数,用于完成设备驱动程序注册的最后收尾工作。 在probe探测函数中进行硬件资源的获取、内存结构的映射以及设备的创建等操作时, 提供的内核操作函数接口进行,涉及的内核操作函数接口见附录C。

5.4.7用户空间内存访问

5.4.8调试统计变量

发时应添加必要的调试统计变量,以便于对驱 交量宜实现分级开关,以提供各种粒度的调试测

驱动程序开发若涉及对第三方技术的使用,应在驱动程序正式开发前对所涉及的第三方技术进行 兼容性、稳定性等方面的测试,确保第三方技术的使用不会对驱动程序的功能、性能造成不良影

字符设备驱动程序框架见图1。

DB43/T 22602021

图1字符设备驱动程序框架

6.1.2.1函数接口

6.1.2.2驱动程序注册

字符设备驱动程序应基于平台驱动模型注册,包含以下内容:

DB43/T 22602021

6.1.2.3字符设备注册

6.1.2.4驱动匹配

6.2.1驱动程序框架

块设备驱动程序框架分为三个层次,见图2

预制场梁板预制二级技术交底图2块设备驱动程序框架

通用块层:为各种类型的块设备建立一个统一的模型,接受上层发出的数据读写请求,并最终 发出I/0请求。通用块层隐藏了底层硬件块设备的特性,为块设备提供了一个通用的抽象视图:

DB43/T 22602021

b)输入输出调度层:接收通用块层发出的I/0请求,缓存请求并合并相邻的请求,根据设置好 的调度算法,回调驱动层提供的请求处理函数,以处理具体的I/0请求; c)块设备驱动层:处理集体I/0请求,处理过程根据块设备类型的不同而有所不同。 块设备驱动程序的一般处理流程应为:上层调用通用块层提供的接口提交1/0请求,这些请求首先 被放入输入输出调度层的I/0调度队列,经过合并和排序,最终将转换后的1/0请求派发到具体块设备 驱动准备的等待队列,由块设备驱动进一步处理。

6.2.2.1函数接口

块设备驱动程序的函数接口应符合以下要求: a) 虚拟块设备的驱动程序可以不提供probe探测函数接口; D) 若块设备驱动程序中需要对1/0请求进行特殊处理,则应提供并实现1/0处理函数;

6.2.2.2驱动程序加载

沟槽土方开挖专项施工方案6.2.2.3驱动程序卸载

©版权声明
相关文章