嵌入式开发五大关注点
![6217760-fb6e5201f8a24de3.png](https://ss.csdn.net/p?https://upload-images.jianshu.io/upload_images/6217760-fb6e5201f8a24de3.png)
系统时序
询问任何开发人员系统中断或其他系统功能的最小,最大和平均执行时间,并且百分之九十的时间答案是空白的。在了解嵌入式系统的实时性能时,许多开发人员只是交叉指责并希望获得最佳效果。微控制器已经变得非常快速和强大,但它们绝不是通用计算设备,其中时间可以完全被忽略。开发人员需要了解他们的系统如何响应,例如,如果多个中断同时触发,或者如果用户一次性地混淆所有按钮。
幸运的是,现代微控制器提供了许多工具,使开发人员能够了解他们的系统时序和响应。例如,ARM微控制器具有跟踪功能,允许开发人员定期对PC计数器进行采样,并重建系统时序和执行路径。利用这些工具可以让开发人员深入了解他们的系统,并为他们提供关于他们的系统如何执行的真实数据,而不是希望和祈祷系统按开发人员认为的方式执行代码。
执行顺序
理解指令执行顺序对于开发人员来说与了解系统时序一样重要。了解系统分支或跳转的位置以及执行各种功能或中断的时间和顺序至关重要。系统变得如此复杂,以至于我们可以认为我们了解正在发生的事情,我们需要提取跟踪数据并直观地看到代码执行。这通常会揭示出与我们预期完全不同的故事。
开发人员需要调查并熟悉他们的微控制器跟踪工具。这些现代工具提供了几年前无法实现的视觉上引人入胜且富有洞察力的图表。在编代码之前可以设置跟踪和错误捕获工具。
代码大小
大多数开发人员,如果被问及GPIO或SPI驱动程序将在他们的系统上占用多少代码空间,甚至没有地方去寻找答案!他们所知道的是,他们最后使用的应用程序有GPIO和SPI,最终的应用程序使用了大约47 kB的闪存空间。
代码大小可能会根据所使用的编译器甚至使用的优化级别和标志而大不相同。如今在大多数情况下,监控代码大小变得不那么重要了,因为闪存相当便宜且供应商已经制造根据代码大小,在同一个微控制器系列中的不同部件之间切换非常容易。但是,跟踪驱动程序等项目的详细信息仍然非常有用,以便于将来的项目规划和零件选择。
RAM使用
- RAM不是代码存储器,而是嵌入式软件开发的关键因素。微控制器提供超过100kB的闪存空间并且同时仅提供16kB RAM的情况并不少见。这意味着RAM空间仍然非常宝贵。在混合中投入RTOS,情况可能很快变得更糟。在基于RTOS的系统中,开发人员为磁盘堆栈空间分配不同数量的RAM并不罕见,因为很难估计恰当的大小。因此,当开发人员创建和实现他们的软件时,他们需要监视他们的RAM空间。
能源消耗
- 电池供电的设备无疑具有能耗作为系统设计的关键要求。但是,有权访问电网的系统通常会忽略能源,因为它不是关键要求。然而,鉴于能源成本上升和自然资源的限制,开发商仍应继续监控其设计的电力需求,以了解其能源足迹以及如何最大限度地减少其使用的能源。通过这种监控,电池供电的设备显然可以在更换电池或为设备充电之间获得更长的使用寿命。
文章转自微信公众号[嵌入式ARM]