嵌入式系统设计通常不仅需要了解硬件,还需要了解软件如何影响硬件并与之交互。设计硬件需要一定的工程范例,这可能与设计软件截然相反。在嵌入式开发中,当从硬件设计过渡到软件设计时,硬件工程师在开始开发软件时应该记住十个软件技巧。
技巧1——首先是流程图,其次是实现当一个工程师第一次踏入软件开发的领域时,有一种强烈的诱惑让他立即投入并开始编写代码。这种思维模式相当于在原理图完成之前就试图设计PCB。坐下来开发软件时,忽略开始编写代码的冲动,而是使用流程图来开发软件的架构图,这一点至关重要。这将使开发人员了解应用程序所需的不同部件和组件,就像原理图告诉工程师需要什么硬件组件一样。通过这样做,整个程序将有更好的机会被很好地组织和思考,从长远来看,这将通过减少调试时间来节省时间和头痛。
技巧2——使用状态机来控制程序流程20世纪最伟大的软件发明之一就是状态机。一个应用程序通常可以分解成多个状态机,每个状态机控制应用程序的一个特定组件。这些状态机中的每一个都有自己的内部状态和状态转换,决定了软件如何对各种激励做出反应。使用状态机设计软件将使模块化、可维护和易于理解的软件开发变得容易。存在大量展示状态机理论和算法的资源。
技巧3——避免使用全局变量在过去的函数式编程中,函数优先于形式,嵌入式开发人员的唯一目标是让程序尽可能快地按预期运行,而不考虑程序结构或可重用性。这种编程范式不担心使用程序中任何函数都可以修改的全局变量。结果是增加了变量损坏或误用变量的机会。在新推荐的面向对象范例中,变量应该在尽可能小的范围内定义,并被封装以防止其他函数误用或破坏变量。因此,建议您限制使用全局范围的变量的数量。在C语言中,可以通过使用extern关键字来标识这些变量。