嵌入式开发团队正在尽可能快地朝着一个目标或交付,他们正试图快速达到一个目标?以下是嵌入式系统开发人员可以遵循的几个技巧,以使他们的系统更快地推向市场。
1、为工作使用正确的工具
你是否曾尝试使用错误尺寸的螺丝刀拧紧螺丝?如果有,你很清楚发生了几件不同的事情:
螺丝头可能被剥掉了,以后很难取下来
必须增加额外的压力才能获得所需的结果
如果你刚刚使用了正确的螺丝刀尖端,则花费的时间比应该花费的时间要长得多
开发嵌入式系统也不例外!很多工程师和团队,他们急于将产品推向市场,但又不愿意在合适的工具上花一点钱。该工具可能是:
实时操作系统
电脑
软件堆栈
调试器
编译器
集成开发环境 (IDE)
ETC
为了节省成本,这些团队由于额外的时间编译、调试和测试他们的系统而遭受巨大的生产力和金钱损失,使用跟踪工具本应花费几分钟才能发现的简单错误突然需要数天或数周才能发现。
2、为每个 MCU 信号添加测试点
测试点很可能是嵌入式开发人员可以添加到他们的硬件中以确保他们的系统可以轻松调试的最重要的硬件功能。测试点允许软件开发人员访问关键信号,这些信号使他们能够窥视软件并查看硬件级别发生的情况。如果 SD 卡或 EEPROM 设备等组件未按预期工作,开发人员需要查看通信信号以了解发生了什么。没有它们,这一切都只是猜测,调试需要十倍的时间。
测试点不必花哨,它们可以是小过孔,而且现在不会对电路板成本产生太大影响。不要忘记在未使用的 GPIO 引脚上也放置测试点。开发人员可能会发现他们需要一些额外的输出信号来了解他们的软件时序。
3、开发和使用自动化测试
彻底和成功地测试嵌入式系统可能非常耗时。轻微的软件更改可能导致不得不返回并重新运行数百个测试用例。如果团队手动执行此操作,他们要么将大部分时间花费在测试上,要么对微小的更改不屑一顾,交叉手指并希望最好。
创建可以在每晚检查构建的持续集成服务器上执行的自动化测试可以确保开发人员将精力集中在开发软件而不是对其进行测试上。开发自动化测试确实需要前期的时间和精力,但长期的好处和节省是不可忽视的。
4、创建和使用硬件抽象层 (HAL)
硬件抽象层是将底层硬件与应用程序代码分离的好方法。HAL 使嵌入式开发人员能够编写他们的应用程序代码,而不必担心他们正在开发的硬件(或者至少少考虑硬件)。低级实现隐藏在一组保持不变的标准接口(函数调用)后面。
开发人员可以创建自己负责管理的 HAL,也可以使用已经存在的 HAL。许多微控制器制造商提供 HAL,以简化与其产品的交互。利用现有的 HAL 可以显着节省时间,特别是如果它是合格的或行业标准的。
5、利用现有的组件和框架
加快速度的诀窍是停止一遍又一遍地重做相同的工作。嵌入式软件开发人员喜欢在位和字节上工作,使用硬件寄存器和最低软件级别。时代在变。不利用现有组件、库和框架而是决定自行开发的开发团队将被抛在后面。市场上有 100 多种不同的 RTOS,它们可以轻松适应所有可能的应用和许可方案。
当今许多嵌入式系统中常见的其他组件也是如此。创建 SD 卡、EEPROM、USB、TCP/IP 或其他常见软件堆栈毫无意义,从头开始既费时又昂贵。
6、使用跟踪工具调试你的系统
对于许多开发团队来说,调试消耗了将近 40% 的开发周期。由于调试时间如此之长,开发人员需要确保他们不仅拥有良好的调试工具,而且拥有正确的调试工具。传统上,嵌入式开发人员不得不在他们的软件中添加闪烁的 LED、printf 语句等,以猜测他们的软件是如何执行的。现代微控制器现在内置了强大的调试模块,可以记录以下事件:
进入和退出函数
中断进入和退出
任务上下文切换
RTOS 对象事件
ETC
开发人员可以按时间记录这些事件,并可视化他们的软件是如何执行的。它消除了调试中的所有猜测,从而减少了调试时间和上市时间。
7、为重用而设计
嵌入式软件开发人员需要以面向对象的方式开始思考,对于这篇文章,这意味着他们应该从一开始就考虑重用。嵌入式软件传统上是以一次性的方式开发的。直接写入寄存器,将应用程序代码与硬件代码混合,瞧!代码完成。嵌入式系统已经变得比五年前复杂得多,更不用说十年前了。以这种一次性的方式编写应用程序不再有效。
相反,开发人员应该对他们的软件进行分层,并在设计阶段询问哪些组件有可能被重用,哪些将被使用一次并丢弃。
结论
尽管今天的开发团队面临着工作越来越快的压力,但仍有大量工具可以帮助他们完成这一任务。我们已经研究了一些关于嵌入式开发人员如何更快地工作的不同技巧。
发表评论 取消回复