当前位置:网站首页>Seven original sins of embedded development
Seven original sins of embedded development
2022-07-06 21:09:00 【Guangdong embedded Education】
Every industry has its best practices and evil practices . Great sin is a practice that many people know , But these practices are too tempting or too easy to fall into . There are many such sins in the embedded development industry , But there are seven special crimes that seem to have existed in the whole industry for decades .
The original sin 1—— Do not track indicators
Failure to track development metrics seems to be a minor sin , But indicators are an integral part of Embedded Software Engineering . Metrics not only provide a way to track progress and problems , An estimation method is also provided . Engineers are often asked ,“ How long will it last ?” or “ How much will it cost ?”. Time and cost issues should be based on empirical data , Instead of improvisation related to the optimism of the Engineer at that time . It is extremely difficult to determine how much flash memory space a microcontroller needs without basic metrics tracking . If there is no tracking , How engineers know about typical digital inputs / Output or UART How much does the driver take RAM/ROM?
The original sin 2—— Hackers, not designers
In the last ten years or so , The concept or idea of becoming a hacker or even a creator has been romanticized by society . Society has accepted this concept , That is, a software engineer should be a rogue hacker , No design or foresight is needed , Can create a revolutionary in a very short time “ complete ” product . The fact is that embedded software engineering is not a hacker discipline . Embedded developers need foresight and design to be truly successful . One of the most common mistakes is that there is no blueprint 、 Crazy design or flow chart dash Code writing , It happens to work under the simplest test cases and conditions , And is considered worthy of release , Because it is “ Functional ”. Implementation and testing should follow the design and architecture .
The original sin 3—— Starting from scratch
Go deep into the deepest level of hardware , And create something in the real world through software , This is both interesting and exciting . Embedded software engineers want to develop everything related to software , From the bottom , Until the application code . The problem with doing everything and starting from scratch is that it's time-consuming and expensive , But this is the first instinct , And usually insist on starting from scratch . Embedded systems have become too complex , Development time is too short , So that ordinary projects cannot start from scratch . Supplier code should be used 、 The first 3 Square component 、 Open source and other standards to complete the work . Since there are so many commercially available and tested alternatives , Why develop your own RTOS?
The original sin 4 – Tools not suitable for work
Strangely enough , When embedded developers need software tools to complete their work , image lint Basic tools like tools are rejected , Because their price is only a few thousand dollars . Simply look at the return on investment of software tools compared with the annual cost of engineers , It should be seen that software tools can complete the work faster and with higher quality .
The original sin 5—— Lack of Continuing Education
The number of transistors in the processor doubles every two years . The functions and technologies used and developed by embedded software engineers are indeed changing at an exponential rate . Although the industry changes rapidly , But many companies do not plan or encourage their engineers to attend meetings or training . Part of the reason for the lack of continuing education seems to be due to the design cycle schedule and pressure . There are too many things to do , A company cannot let its engineers or costs not work for a few days . The real question companies should ask is , Without the latest developed technology and knowledge , Whether they have the ability to hire engineers .
The original sin 6—— Working hours are too long
When the deadline is coming , When there are no extra people , What will happen ? Embedded developers work overtime . Working too long is a common problem for embedded software engineers . Firmware dominates the world , But now there are not enough firmware engineers to produce all the equipment that society needs . What's worse is , The speed of social demand for these devices is getting slower . There is always an impulse to complete the software yesterday . However, working too long is bound to wear out . Instead of accelerating delivery , Delivery will only be delayed . Don't fall into the trap of persistent timeout . A fresh mind is more exhausted than one 、 An exhausted mind works much faster , Much more efficient .
The original sin 7—— Failure to follow best practices
MISRA-C、CERT-C And many other industry standards contain the knowledge and wisdom of countless embedded developers . Experienced engineers have done it there , Not only learn from their own mistakes , Also learn from others' mistakes , Developed such a standard . However , Due to time constraints 、 Deadline stress or other obstacles , Many developers ignore the best practices of embedded software .
Conclusion
There are major crimes in all walks of life . Best practices are often designed to help prevent them , Or at least encourage correct behavior . When the deadline approaches , When the pressure increases , The temptation to fall into these seven sins is almost irresistible . Every embedded developer and company has been their victim to some extent . The real concern is how often , What can we do to get back on track .
边栏推荐
- Entity alignment two of knowledge map
- 硬件开发笔记(十): 硬件开发基本流程,制作一个USB转RS232的模块(九):创建CH340G/MAX232封装库sop-16并关联原理图元器件
- Variable star --- article module (1)
- js中,字符串和数组互转(二)——数组转为字符串的方法
- [200 opencv routines] 220 Mosaic the image
- 039. (2.8) thoughts in the ward
- 全网最全的知识库管理工具综合评测和推荐:FlowUs、Baklib、简道云、ONES Wiki 、PingCode、Seed、MeBox、亿方云、智米云、搜阅云、天翎
- Redis insert data garbled solution
- js中,字符串和数组互转(一)——字符串转为数组的方法
- The mail command is used in combination with the pipeline command statement
猜你喜欢
面试官:Redis中有序集合的内部实现方式是什么?
20220211 failure - maximum amount of data supported by mongodb
监控界的最强王者,没有之一!
Reference frame generation based on deep learning
3D人脸重建:从基础知识到识别/重建方法!
[MySQL] basic use of cursor
强化学习-学习笔记5 | AlphaGo
Interviewer: what is the internal implementation of ordered collection in redis?
This year, Jianzhi Tencent
2022菲尔兹奖揭晓!首位韩裔许埈珥上榜,四位80后得奖,乌克兰女数学家成史上唯二获奖女性
随机推荐
Taylor series fast Fourier transform (FFT)
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
C # use Oracle stored procedure to obtain result set instance
愛可可AI前沿推介(7.6)
PG基础篇--逻辑结构管理(事务)
#yyds干货盘点#重新梳理箭头函数的this
每个程序员必须掌握的常用英语词汇(建议收藏)
ICML 2022 | flowformer: task generic linear complexity transformer
Introduction to the use of SAP Fiori application index tool and SAP Fiori tools
Web开发小妙招:巧用ThreadLocal规避层层传值
Word bag model and TF-IDF
3D人脸重建:从基础知识到识别/重建方法!
[200 opencv routines] 220 Mosaic the image
强化学习-学习笔记5 | AlphaGo
OneNote 深度评测:使用资源、插件、模版
OAI 5G NR+USRP B210安装搭建
Math symbols in lists
What is the difference between procedural SQL and C language in defining variables
Mécanisme de fonctionnement et de mise à jour de [Widget Wechat]
968 edit distance