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

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

标准规范下载简介

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

DB43/T 2260-2021是中国湖南省的一项地方标准,全称为《信息技术应用创新工程建设规范 第9部分:驱动开发通用技术要求》。该标准主要针对信息技术应用创新工程中的驱动开发部分,提供了一套通用的技术要求。

驱动开发是信息技术应用中的一种关键环节,通常涉及到操作系统、硬件设备和软件应用程序之间的交互。本标准旨在规范驱动开发过程,包括但不限于以下几个方面:

1. 技术选型:规定了驱动开发应采用的技术平台、编程语言、开发工具等,以保证驱动的兼容性、稳定性和性能。

2. 设计原则:强调了驱动的模块化、可扩展性和可维护性,以支持持续的软件更新和优化。

3. 测试标准:提出了驱动开发过程中的测试方法、测试用例和性能指标,确保驱动的正确性和可靠性。

4. 文档管理:要求开发者提供详尽的驱动开发文档,包括设计文档、用户手册、调试指南等,以方便后期维护和使用。

5. 安全与隐私:关注驱动开发中的安全问题,如数据保护、权限管理等,以保障用户信息的安全。

6. 兼容性与标准化:确保驱动与不同操作系统、硬件设备的兼容性,并遵循相关行业和国际标准。

总的来说,DB43/T 2260-2021为信息技术应用创新工程中的驱动开发提供了明确的技术指南,以提升项目的质量和效率。

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

DB43/T 22602021

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

GB 50614-2010 跨座式单轨交通施工及验收规范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驱动程序卸载

6.3.1驱动程序框架

平台设备驱动程序可分为平台控制器驱动和平台设备驱动两个部分,驱动框架见图3.

DB43/T 22602021

JC∕T 822-2003 水泥制品工业用离心成型机技术条件DB43/T 22602021

6.3.2.1函数接口

6.3.2.1.1对外接口

图3 平台设备驱动程序子系统框架

平台设备驱动程序提供给应用层的接口应使用标准接口,提供的接口应有说明以及用例 提供的对外接口应采用dev节点方式或sysfs节点方式

6.3.2.1.2电源管理接口

平台设备驱动程序应提供设备的暂停、恢复流程和电源管理接口,以确保在系统休眠或待机时市 存设备自身的寄存器的状态以及其他必要的上下文信息,以及确保系统恢复后设备能恢复到休眠重 前的状态

用户侧储能项目的投资逻辑与商业模式6.3.2.2驱动及设备注册

平台设备驱动程序应满足总线\设备\驱动的平台设备驱动模型,设备应注册在总线上.平台控制器 驱动应注册成master主设备,控制器下设备驱动应注册成slave从设备,并使用master主设备提供的 接口来完成收发功能。 驱动程序和设备注册时,应使用系统内核提供的接口完成注册,包括: a)总线注册控制器驱动的接口; b)平台控制器设备驱动注册成总线master主设备的接口; c)控制器下设备驱动注册成总线slave从设备的接口; d)slave从设备使用master主设备xfer的接口

©版权声明
相关文章