[导读]最近几天在完成一个项目的EVT收尾工作,EVT这个名词可能有些朋友不是很熟悉,EVT(EngineeringVerificationTest)表示进行工程验证测试阶段。一般的新产品开发都分为三个阶段:EVT、DVT和PVT,EVT主要是调试单板,设计方案的可行性验证,所以这个阶段...
最近几天在完成一个项目的EVT收尾工作,EVT这个名词可能有些朋友不是很熟悉,EVT(Engineering Verification Test)表示进行工程验证测试阶段。
一般的新产品开发都分为三个阶段 : EVT、DVT和PVT,EVT主要是调试单板,设计方案的可行性验证,所以这个阶段非常的关键,而后面几个阶段在流程比较成熟的公司,一般都是顺理成章的事。前一段时间没怎么更新,也主要是把更多的精力投入到了工作中,根据一直以来的习惯,每个项目的每个阶段都会组织研发团队进行复盘。
而这一次复盘给我感受颇深的是代码的可移植性和可复用性,所以也就有了今天的文章。
1
代码的价值
其实软件都是朝着,高内聚、低耦合、良好的可移植性以及较强的可复用性来不断发展的,其中高内聚和低耦合就不多说了,这两点跟项目的软件功能结构划分存在较大的联系,而可移植性和可复用性就相对比较通用和独立。
可移植性与我们平时所说的跨平台能力比较相近,而软件复用则是一种通过已有软件子件来构建新产品软件的能力。
这些代码属性都将成为评估代码价值的指标,很多朋友该说了,嵌入式中的代码不就是在满足客户需求的前提下稳定运行吗?bug不要太多就好。
没错,但这属于代码最基本的价值,也是被称为代码本该有的价值,否则那不叫代码,叫"随随便便默写的abc"。
要想成为一名优秀的程序员,满足基本的代码价值还远远不够,还要有能力创造代码的其他价值,让代码的生命力延续得更久,其中可移植性和可复用性是衡量的重要指标。
2
可移植与可复用
开发一套软件,犹如生产一套工具,大部分情况下都不提倡一次性工具,你所开发的东西不仅能够满足当前需求,还需要为以后相似的开发或者应用以及产品的更新换代提供支持。
比如拿构建的滤波算法库,每次用到新的滤波算法都不会与实际的项目耦合,而是单独分离出来与算法库融合,并且开放出较全的对外接口。
这样仅仅只是考虑了软件的可复用能力,还要考虑该库的跨平台能力,比如把与平台相关的部分抽出来进行各平台的兼容等处理来加强各部分的可移植性。
其实很多时候有些人把软件的可复用更多的看成是一种纵向的可移植能力。
这样当我们进行下一个项目软件开发的时候,前期就可以直接把该库移植过去,后面就不需要再“重复造轮子”了。
一方面缩短了嵌入式软件的开发周期,另一方面相应的代码也会更加的稳定,从而提高了产品交付能力。
3
嵌入式更需要
在嵌入式软件开发中,代码的可移植和可复用能力相对而言会有更多的诉求。嵌入式就是用有限的资源来构建特定的应用场景,这句话里面有两个词"有限"和“特定”,我觉得这不仅把嵌入式描述清楚了,而且把嵌入式与其他领域的区别道出来了。
很多做嵌入式的朋友玩了一段时间更上层的应用开发,就会觉得上层开发是那么的轻松,确实那很轻松,因为那些所带来的便利都是建立在过盛的硬件资源条件下完成的,然而嵌入式与此并不协调。
有过较长时间嵌入式软件开发的朋友,应该有一个感受--"嵌入式太杂了",首先还不说各种应用的场景,单单嵌入式平台的底层驱动就非常的繁杂,平台种类繁多,同一平台下不同系列外设也会存在差异等等,甚至这些繁多的软件版本管控都是一个大学问。
刚开始学单片机的朋友,在起初都会有这样的挫败感,”又换MCU了呀?感觉又要重头开始学了?有开发板吗?有参考demo吗?“等等。
其实真正参加工作以后,几年下来接触到好几款芯片应该不是什么新鲜事了,甚至那些芯片都非常的冷门,所以在各平台上都游刃有余是一种重要能力的体现。
随着芯片工艺和技术的提升,MCU各方面的性能和功能都有加强,底层驱动部分的开发也是越来越复杂,datasheet更是需要经常查阅,因为很多时候厂家的例程无法满足目前的使用需求。
然而各大厂家都有自己的一套外设驱动流程和配套开发风格,没有得到统一,如果经常使用同一家厂家的产品,影响相对小一点。
比如st库就为大家做了这一块的工作,只要是使用st系列的MCU很多驱动都是通用的,但是也免不了标准库的停更和hal库与llc库的诞生,为了适应新鲜的东西,都需要花时间去测试、评估和修改。
所以对于底层驱动开发的复杂度,目前来看并没有很好的办法,如果驱动部分与应用部分再杂糅在一起,这样的代码就大大降低了我们今天谈的这两大属性。
所以驱动部分、平台相关的都要与具体应用代码进行分离。
4
构建中间层
对于底层驱动为了达到分离的目标,我们需要构建中间层,也有人称之为硬件抽象层,既然在MCU上底层驱动库很难得到较好的统一,通过分层的思想,把驱动和上层进行分离,通过构建一个中间层,中间层就相当于一个万能转换器,提供给上层的将是一套统一的接口,而内部通过API适配把底层的差异进行统一,以达到屏蔽掉底层的各种差异性的目的。
说起来好像挺简单的,其实不然,这套统一的接口是需要定义者对多个平台非常的熟悉,建立之前丰富的软件设计经验之上,并不简单的传递几个参数,封装成一个函数就完事了,往往如果接口统一不好,不仅仅达到到较好的可移植目的,甚至反而降低了处理的效率。
5
最后小结
在可移植性方面,对代码进行平台驱动的适配,以及平台属性方面的适配(比如数据类型的平台差异等),就可以满足系统的运作。
面对目前缺芯的境况,代码的可移植性的价值就体现出来了,可移植性好的改动也非常小。
而对于可复用能力,体现在新产品软件的快速构建能力了,代码的可复用能力越高,公司培养的CV工程师就越多,可复用性是一个解放程序员的代码属性。
为什么有些人越来越强,开发速度越来越快,很大程度上是因为他们所积累的软件子类具有较强的可移植性和可复用能力。
当你要进行一个新项目开发中,只需要把这些可复用的软件以模块的方式进行拼凑和协调即可实现一个你想要的工程,就跟我们建房子也是类似的道理。
中间件以上的软件部分,尽量不要使用编译器或者平台的特有属性,比如特定的关键字、函数、或者编译器的扩展语法等。
当然尽量不要用,并不是说你不要去了解和学习,如果其对系统性能提升有非常大的帮助,最好是想办法与实际的应用代码进行分离。
最后
好了,今天就跟大家分享这么多了,如果你觉得有所收获,一定记得点个赞~,
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。
关键字:
阿维塔
塞力斯
华为
加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...
关键字:
AWS
AN
BSP
数字化
伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...
关键字:
汽车
人工智能
智能驱动
BSP
北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...
关键字:
亚马逊
解密
控制平面
BSP
8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。
关键字:
腾讯
编码器
CPU
8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。
关键字:
华为
12nm
EDA
半导体
8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。
关键字:
华为
12nm
手机
卫星通信
要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...
关键字:
通信
BSP
电信运营商
数字经济
北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...
关键字:
VI
传输协议
音频
BSP
北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...
关键字:
BSP
信息技术
山海路引 岚悦新程 三亚2024年8月27日 /美通社/ -- 近日,海南地区六家凯悦系酒店与中国高端新能源车企岚图汽车(VOYAH)正式达成战略合作协议。这一合作标志着两大品牌在高端出行体验和环保理念上的深度融合,将...
关键字:
新能源
BSP
PLAYER
ASIA
上海2024年8月28日 /美通社/ -- 8月26日至8月28日,AHN LAN安岚与股神巴菲特的孙女妮可•巴菲特共同开启了一场自然和艺术的疗愈之旅。 妮可·巴菲特在疗愈之旅活动现场合影 ...
关键字:
MIDDOT
BSP
LAN
SPI
8月29日消息,近日,华为董事、质量流程IT总裁陶景文在中国国际大数据产业博览会开幕式上表示,中国科技企业不应怕美国对其封锁。
关键字:
华为
12nm
EDA
半导体
上海2024年8月26日 /美通社/ -- 近日,全球领先的消费者研究与零售监测公司尼尔森IQ(NielsenIQ)迎来进入中国市场四十周年的重要里程碑,正式翻开在华发展新篇章。自改革开放以来,中国市场不断展现出前所未有...
关键字:
BSP
NI
SE
TRACE
上海2024年8月26日 /美通社/ -- 第二十二届跨盈年度B2B营销高管峰会(CC2025)将于2025年1月15-17日在上海举办,本次峰会早鸟票注册通道开启,截止时间10月11日。 了解更多会议信息:cc.co...
关键字:
BSP
COM
AI
INDEX
上海2024年8月26日 /美通社/ -- 今日,高端全合成润滑油品牌美孚1号携手品牌体验官周冠宇,开启全新旅程,助力广大车主通过驾驶去探索更广阔的世界。在全新发布的品牌视频中,周冠宇及不同背景的消费者表达了对驾驶的热爱...
关键字:
BSP
汽车制造
此次发布标志着Cision首次为亚太市场量身定制全方位的媒体监测服务。 芝加哥2024年8月27日 /美通社/ -- 消费者和媒体情报、互动及传播解决方案的全球领导者Cis...
关键字:
CIS
IO
SI
BSP
上海2024年8月27日 /美通社/ -- 近来,具有强大学习、理解和多模态处理能力的大模型迅猛发展,正在给人类的生产、生活带来革命性的变化。在这一变革浪潮中,物联网成为了大模型技术发挥作用的重要阵地。 作为全球领先的...
关键字:
模型
移远通信
BSP
高通
北京2024年8月27日 /美通社/ -- 高途教育科技公司(纽约证券交易所股票代码:GOTU)("高途"或"公司"),一家技术驱动的在线直播大班培训机构,今日发布截至2024年6月30日第二季度未经审计财务报告。 2...
关键字:
BSP
电话会议
COM
TE
8月26日消息,华为公司最近正式启动了“华为AI百校计划”,向国内高校提供基于昇腾云服务的AI计算资源。
关键字:
华为
12nm
EDA
半导体