当前位置:网站首页>嵌入式开发的7大原罪
嵌入式开发的7大原罪
2022-07-06 12:51:00 【粤嵌教育】
每个行业都有他们的最佳实践和罪恶实践。大罪是许多人都知道的做法,但这些做法太诱人或太容易陷入其中。嵌入式开发行业有许多这样的大罪,但是有七个特别的罪似乎已经在整个行业中存在了几十年。
原罪1——不跟踪指标
未能跟踪开发指标似乎是一个小罪,但指标是嵌入式软件工程不可或缺的一部分。 指标不仅提供了一种跟踪进度和问题的方法,还提供了一种估计方法。 工程师经常被问到,“它会持续多久?” 或“要花多少钱?”。时间和成本问题应该基于经验数据,而不是与工程师当时的乐观程度有关的即兴发挥。如果没有基本的度量跟踪来确定微控制器需要多少闪存空间是极其困难的。如果没有跟踪,工程师如何知道典型的数字输入/输出或 UART 驱动程序占用了多少 RAM/ROM?
原罪2——黑客而不是设计
在过去十年左右的时间里,成为一名黑客甚至是一名创造者的概念或想法已经被社会浪漫化了。社会已经接受了这个概念,即软件工程师应该是一个流氓黑客,不需要什么设计或深谋远虑,就能在很短的时间内创造出一个革命性的“完整的”产品。事实是嵌入式软件工程不是一门黑客学科。嵌入式开发人员需要深谋远虑和设计才能真正成功。最常犯的错误之一是没有蓝图、设计或流程图的疯狂dash代码编写,它恰好在最简单的测试案例和条件下工作,并被认为值得发布,因为它是“功能性的”。实现和测试应该遵循设计和架构。
原罪3——从零开始
深入到硬件的最深层次,并通过软件在现实世界中创造一些东西,这既有趣又令人兴奋。 嵌入式软件工程师希望开发与软件相关的一切,从最底层开始,一直到应用程序代码。 做所有事情并从头开始的问题在于它既费时又昂贵,但这是第一本能,而且通常坚持从头开始。 嵌入式系统已经变得太复杂,开发时间太短,以至于普通项目无法从头开始。 应该利用供应商代码、第 3 方组件、开源和其他标准来完成工作。 既然有如此多的商业可用和经过测试的替代品,为什么还要开发自己的 RTOS?

原罪4 – 不适合工作的工具
奇怪的是,当嵌入式开发人员需要软件工具来完成他们的工作时,像lint工具这样的基本工具被拒绝,因为它们的价格只有几千美元。简单地看一下软件工具的投资回报率与工程师每年的花费相比,应该可以看出软件工具可以更快更高质量地完成工作。
原罪5——缺乏继续教育
处理器中的晶体管数量每两年翻一番。嵌入式软件工程师使用和开发的功能和技术确实在以指数速度变化。尽管行业变化迅速,但许多公司并不计划或鼓励他们的工程师参加会议或培训。缺乏继续教育的部分原因似乎是由于设计周期时间表和压力。有太多的事情要做,一家公司不能让他们的工程师或成本在几天内不工作。公司真正应该问的问题是,在没有最新开发技术和知识的情况下,他们是否有能力雇佣工程师。
原罪6——工作时间太长
当最后期限即将到来,而又没有额外的人手时,会发生什么呢?嵌入式开发人员加班加点。工作时间过长是嵌入式软件工程师的一个普遍问题。固件主宰着世界,但现在没有足够的固件工程师来生产社会需要的所有设备。更糟糕的是,社会对这些设备的需求速度越来越慢。总是有一种需要昨天完成的软件的冲动。然而工作太长时间肯定会累垮。而不是加速发货,发货只会延迟。不要陷入持续超时的陷阱。一个新鲜的头脑比一个疲惫不堪、精疲力竭的头脑工作起来要快得多,效率高得多。
原罪7——未能遵循最佳实践
MISRA-C、CERT-C和许多其他行业标准包含了可数的嵌入式开发人员的知识和智慧。经验丰富的工程师们在那里做过,不仅从他们自己的错误中学习,也从其他人的错误中学习,开发了这样的标准。然而,由于时间限制、截止日期压力或其他障碍,许多开发人员忽略了嵌入式软件的最佳实践。
结论
各行各业都存在大罪。最佳实践通常旨在帮助防止它们,或者至少鼓励正确的行为。当最后期限临近,压力增大时,陷入这七宗罪的诱惑几乎是无法抗拒的。每个嵌入式开发人员和公司都曾在某种程度上成为他们的牺牲品。真正关心的是多久一次,做什么才能回到正轨。
边栏推荐
- [wechat applet] operation mechanism and update mechanism
- 2017 8th Blue Bridge Cup group a provincial tournament
- 3D人脸重建:从基础知识到识别/重建方法!
- None of the strongest kings in the monitoring industry!
- No Yum source to install SPuG monitoring
- C language games - minesweeping
- Word bag model and TF-IDF
- c#使用oracle存储过程获取结果集实例
- SAP UI5 框架的 manifest.json
- Pat 1085 perfect sequence (25 points) perfect sequence
猜你喜欢

Comprehensive evaluation and recommendation of the most comprehensive knowledge base management tools in the whole network: flowus, baklib, jiandaoyun, ones wiki, pingcode, seed, mebox, Yifang cloud,

3D face reconstruction: from basic knowledge to recognition / reconstruction methods!

KDD 2022 | 通过知识增强的提示学习实现统一的对话式推荐

Kubernetes learning summary (20) -- what is the relationship between kubernetes and microservices and containers?

968 edit distance

Database - how to get familiar with hundreds of tables of the project -navicat these unique skills, have you got it? (exclusive experience)

【OpenCV 例程200篇】220.对图像进行马赛克处理

基于STM32单片机设计的红外测温仪(带人脸检测)
![[DIY]如何制作一款個性的收音機](/img/fc/a371322258131d1dc617ce18490baf.jpg)
[DIY]如何制作一款個性的收音機

SSO single sign on
随机推荐
R语言可视化两个以上的分类(类别)变量之间的关系、使用vcd包中的Mosaic函数创建马赛克图( Mosaic plots)、分别可视化两个、三个、四个分类变量的关系的马赛克图
Swagger UI教程 API 文档神器
2022 fields Award Announced! The first Korean Xu Long'er was on the list, and four post-80s women won the prize. Ukrainian female mathematicians became the only two women to win the prize in history
Swagger UI tutorial API document artifact
3D face reconstruction: from basic knowledge to recognition / reconstruction methods!
Reviewer dis's whole research direction is not just reviewing my manuscript. What should I do?
Interviewer: what is the internal implementation of ordered collection in redis?
No Yum source to install SPuG monitoring
ICML 2022 | Flowformer: 任务通用的线性复杂度Transformer
2017 8th Blue Bridge Cup group a provincial tournament
Aiko ai Frontier promotion (7.6)
防火墙基础之外网服务器区部署和双机热备
It's almost the new year, and my heart is lazy
数据湖(八):Iceberg数据存储格式
None of the strongest kings in the monitoring industry!
知识图谱之实体对齐二
el-table表格——获取单击的是第几行和第几列 & 表格排序之el-table与sort-change、el-table-column与sort-method & 清除排序-clearSort
PG基础篇--逻辑结构管理(事务)
OSPF多区域配置
基于STM32单片机设计的红外测温仪(带人脸检测)