浅谈嵌入式系统开发的相关思维、方法、技巧

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

嵌入式开发是一项需要长时间投入和实践方法的艰辛工作,涉及裁减计算机系统、固化软件和硬件。辅助工具如流程图和UML图可用于思维设计。优化和深入底层可提高效率和理解语言,帮助深入理解底层原理知识。

🔎

延伸解读

嵌入式开发的现实挑战

文章指出嵌入式开发工作艰辛,需要长时间投入,可能加班加点,且报酬相对较低。但作者也提到其中存在乐趣,并称其为“跳坑”。对于刚接触的人,作者建议考虑其他选择,但最终取决于个人是否舍得离开。这提醒读者在入行前需权衡投入与回报,做好心理准备。

思维固化与辅助工具

嵌入式系统是高度裁减的专用计算机系统,软件是设计人员思维的固化,硬件是固化逻辑。思维设计需要辅助工具,如流程图、UML图、数据流图,而具体代码并非良好辅助工具。良好的方法至关重要,例如状态机编程,需要理解状态定义和转换。这强调了在开发中注重思维设计和方法论的重要性。

实时性认知的演进

文章描述了开发者对实时性认知的五个阶段:从“越快越好”到认为RTOS能保证实时性,再到任务拆分,进而思考实时性模型特点,最后达到深入理解的阶段。这提示读者实时性并非单一因素,需要逐步深入理解其模型特点,才能成为高级码农。

深入底层与优化技巧

文章强调不要惧怕优化,应深入理解编译器、内存、寄存器、语言本质。例如位域用于切分整型变量,volatile告诉编译器不优化被修饰变量。在保证逻辑正确下,应减少volatile使用或限制范围以提高效率。掌握这些底层知识有助于打开语言大门,避免内存相关问题。

❓

Q&A

嵌入式开发工作有哪些特点?

嵌入式开发是一项相对艰辛的工作,需要长时间投入,可能要加班加点,报酬相对较低,但也有一些乐趣。如果深耕不辍,最终会成为软硬件结合的专家。

嵌入式系统中软件和硬件的本质是什么?

软件是通过使用特定语言“尝试”固化下来的设计人员的思维;硬件是固化下来的逻辑,能够稳定地提供确定的服务和功能。

嵌入式开发中为什么需要注重方法?有哪些辅助工具?

思维设计需要辅助工具,如流程图、UML图、数据流图等,良好的方法至关重要,比如状态机编程需要思考如何理解状态以及如何确定一个状态。

嵌入式开发中实时性的认知通常经历哪些阶段?

通常经历以下阶段:Lv1认为实时性就是越快越好;Lv2认为实时性等于RTOS;Lv3认为实时性是任务拆分;Lv4开始思考实时性模型的特点;Lv5则深入理解,脑洞大开。

在嵌入式开发中,volatile关键字有什么作用?使用时需要注意什么?

volatile用于告诉编译器不允许对被修饰的变量做优化。在保证程序逻辑正确的情况下,应尽可能减少volatile的使用,或限制其使用范围,以提高效率。

深入底层理解编译器、内存和语言本质对嵌入式开发有什么帮助?

深入底层理解编译器、内存、寄存器、语言本质,能够优化代码和提高效率,帮助定义bug,避免内存相关问题,打开语言的大门。

🏷️

标签

➡️

继续阅读