当前位置:首页 > 单片机 > 单片机
[导读] 干货 | 最简单IO驱动的智慧 从单片机到ARM7、ARM9、Cortex-A8,从uC/OS到WinCE、Linux,GPIO驱动都是最简单、最易编写的驱动。但看似简单、毫无技术含量的驱动,其是否完整?是否规范?是否安全? 典型案

干货 | 最简单IO驱动的智慧



从单片机到ARM7、ARM9、Cortex-A8,从uC/OS到WinCE、Linux,GPIO驱动都是最简单、最易编写的驱动。但看似简单、毫无技术含量的驱动,其是否完整?是否规范?是否安全?

典型案例

本节将选取两例典型案例,从反、正两个角度进行对比。

反方案例

以某一源码中XXX驱动为例,截取XXX_IOControl部分的代码,如程序清单1所示;请留意代码突出显示部分。

程序清单1

从反方案例,实现GPIO电平状态的读或写的功能仅需要几行代码,非常简单。

正方案例

如程序清单2所示,代码截取自ZLG某核心板GPIO驱动,请留意代码中突出显示部分。

程序清单2

从正方案例,实现GPIO电平状态的读或写的功能却花费了2倍的代码工作量,差异为何如此大?

案例点评

一、指针使用

在反方案例中,函数传递进来的指针参数未经判断而直接使用,这种情况下若为空指针或野指针,则程序极可能出现异常甚至崩溃!

反方案例在读取操作后,使用“*pBytesReturned = 2;”返回实际读取的字节数,但是,该指针依然未经判断而直接使用!

而正反案例则在每一项参数使用前均对参数范围、有效性进行判断,从根本上避免了参数异常情况的发生!

二、错误提示

在反方案例中,XXX_IOControl只是返回TRUE或FALSE,返回FALSE时应用层无从获取或获知是什么原因造成了“FALSE”!

对比正方案例,在参数判断时即开始添加错误提示,在return之前,调用SetLastError函数,应用层则可以通过GetLastError获取错误原因,允许用户更快速、准确的定位错误点。

三、注释

反方案例函数体内外几乎无注释;

而正方案例,无论函数体内的关键位置还是函数体外,均做必要、详细的注释说明,为程序的后期维护带来极大的便利!

包括最简单的GPIO在内,驱动实现功能非常容易,但驱动的完整性与可靠性却蕴藏着软件工程的大智慧。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

树莓派,(英语:Raspberry Pi,简写为RPi,别名为RasPi / RPI)是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,用户可以用上运行...

关键字: 树莓派 gpio gpio编程

5G网络(5G Network)是第五代移动通信网络,其峰值理论传输速度可达20Gbps,合2.5GB每秒,比4G网络的传输速度快10倍以上。举例来说,一部1G的电影可在4秒之内下载完成

关键字: 矿井通5G 智慧

智能时代背景下医院信息化建设是一项长期性的投入工程,其效益不可能在短期内就展现出来,因此必须要确保在此方面的投入是持续的,在此方面的优化决心是坚定的,并且将其作为医院发展战略中的重要版块。当前很多医院也开始积极参与到信息...

关键字: 信息化 医疗 智慧

根据中国国际经济交流中心、国经咨询有限公司及中国信通院研究报告预测,2020年中国5G总投资为9000亿元,2025年将达到15000亿元——直接把5G打造成车联网领域的中国优势。

关键字: 车联网 汽车 智慧

英山县中医院介绍;英山县中医院是我县一所集医疗、预防、康复、保健为一体的,突出中医药特色、中西并重、综合服务的二级甲等中医院,是英山县城镇职工、居民医疗保险、新型农村合作医疗定点医院,是县残联残疾鉴定指定医疗机构,湖北省...

关键字: 智慧 医疗系统 软件

生活中的科技提升生活品质,生产中的科技助力产品提质。依靠科技创新,建设低成本、广覆盖、高质量的公共服务体系,实现优质资源普惠共享,科技就能造福人民、助力小康。

关键字: 智慧 芯片

7 月 30 日消息 根据华为官方的消息,7 月 30 日,华为智慧政务峰会 2020 成功举办。会上,华为发布了智慧政务解决方案,官方称致力于让政务服务 “线下”更有速度、“线上”更有温度。官方表

关键字: 华为 政务 智慧

“烽火戏诸侯”的故事我们都听过。在烽火台施烟点火,以传递信息,这其实就是最原始的光通信。 光通信是指以光波为载波的通信方式。古人只需点火即可传递信号,而现代的光通信则要复杂得多:信息发送端需要将电信号

关键字: 光网 智慧 标杆 烽火 通信

HUAWEI AI PASS,中文名称为“华为智卡”,致力于推动手机在行业NFC和蓝牙应用标准的建立,通过开放手机厂商的特有能力,让合作伙伴将卡、证、钥匙等各类凭证添加到华为钱包,为用户提供更便捷、智

关键字: 智慧 标杆 生态 行业

5G网络作为通信基础,开启了社会各行各业发展的新篇章。随着5G技术的日臻成熟,相关行业持续推进5G+产业生态,为人们的日常生活带来更多便利。旅游行业也不例外,国内部分文旅项目如红旗渠景区、九寨沟景区、

关键字: 旅游 智慧 科技
关闭