营收|嵌入式开发:硬件工程师的 10 个软件技巧

【营收|嵌入式开发:硬件工程师的 10 个软件技巧】营收|嵌入式开发:硬件工程师的 10 个软件技巧

文章图片


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

技巧4——利用模块化的优势如果你问任何一个工程师 , 项目中最有可能延迟交付和超出预算的部分 , 答案将是软件 。 软件通常很复杂 , 很难开发和维护 , 尤其是当整个应用程序驻留在一个文件或多个松散关联的文件中时 。 为了简化可维护性、可重用性和复杂性 , 强烈建议利用现代编程语言的模块化 , 将常见功能分解为模块 。 通过以这种方式分解代码 , 程序员可以开始构建函数库和特性库 , 这些函数库和特性库可以从一个应用程序重用到下一个应用程序 , 从而通过连续测试提高代码质量 , 并减少时间和开发成本 。
技巧5–保持中断服务例程简单中断服务例程用于从当前正在执行的代码分支中中断处理器 , 以便处理中断刚刚被触发的外设 。 每当执行中断时 , 都需要一定量的开销来保存当前程序状态 , 运行中断 , 然后将处理器返回到原始程序状态 。 现代处理器比几年前快得多 , 但仍需要考虑这种开销 。 一般来说 , 为了不干扰主代码分支 , 嵌入式开发人员希望尽量减少中断时间 。 这意味着中断应该短而简单 。 不应从中断中调用函数 。 此外 , 如果中断开始变得太复杂或花费太多时间 , 则应该使用该中断来完成当时所需的最少任务 , 例如将数据加载到缓冲区并设置一个标志 , 然后允许主分支处理传入的数据 。 这样做可以确保处理器的大部分周期都用于运行应用程序 , 而不仅仅是处理中断 。