预期行为和实际行为可能以多种方式不同 , 这些方式在源代码中并不明显 , 并且难以通过功能测试来检测 。 当应用程序变得越来越复杂时 , 这对于运行RTOS 或Linux内核的多线程嵌入式软件的嵌入式开发人员来说是一个越来越大的挑战 。
遵循这五个最佳实践 , 以获得系统级别的实时行为所需的可见性 , 以提高产品质量并加快开发速度 。
1.通过可视化时间线减少猜测 。
运行完整的多线程系统时检测到的问题通常难以解决 。 幸运的是 , 调试过程中更好的洞察力可以减少猜测 。 这样可以更容易地找到根本原因 , 从而正确修复错误并减少调试时间 。 看到软件执行的可视化时间线的能力在许多情况下都很重要 , 例如当错误的位置从最初的症状中不明显时 , 当问题难以重现时 , 以及当传统的调试工具(停止执行)时不能使用 。
printf调试呢?在应用程序代码中添加调试打印的旧做法是有风险的、侵入性的 , 并且无法扩展到更复杂的应用程序和更快的处理器 。 printf函数不是为此目的而设计的 , 而且通常很慢——每条消息需要几毫秒 。 相比之下 , 视觉跟踪诊断依赖于软件跟踪的优化解决方案 , 并且比printf 调用快约100倍 , 因此你可以收集更多信息而不会产生明显影响 。 此外 , 数据可视化技术可以轻松地将软件跟踪转化为可操作的见解 。
2.监控系统测试以发现难以捉摸的问题 。
跟踪数据的持续实时流式传输使嵌入式开发人员能够长时间记录和可视化软件的完整图片 , 以捕捉难以重现和调试的难以捉摸的软件问题 。 捕获跟踪记录中的任何“故障”并了解导致它们的原因 。 或者在经过数小时的压力测试后找出系统崩溃的原因 。 Percepio? Tracealyzer?的可视化跟踪诊断使你能够查看运行时系统的实时动画视图 , 在高级可视化概览和统计中发现异常 , 并深入了解特定事件以准确了解发生了什么 。
3.改进软件设计以获得更好的产品和更低的成本 。
一些开发项目会遇到“调试地狱” , 这是一种常见的场景 , 大量的调试会阻碍项目 。 软件设计和RTOS应用程序开发中与最佳实践的偏差通常是主要的促成因素 。 一些示例包括不合适的任务优先级、软件时序的巨大变化以及任务之间的过多依赖关系 。 此类问题可能会导致复杂和混乱的系统行为 , 可测试性差 , 这增加了难以捉摸的错误泄漏到生产设备中的风险 。
可视化跟踪诊断帮助开发人员分析和改进软件设计 , 确保系统行为稳定可靠 。 当你可以更早地发现软件设计缺陷时 , 修复它们所需的更改更少 , 并且已交付产品中出现错误的风险也会降低 。 软件设计改进还可以显着提高系统性能和响应能力 。 这可以允许嵌入式开发人员选择更具成本效益的处理器来降低BoM 成本 , 或者使用较低的时钟频率来延长电池寿命 。
4.验证整个项目的时间安排和产品性能 。
尽早测量时间和性能指标 , 以便你可以在交付前解决任何问题 。 这对于具有明确时序要求的实时系统至关重要 , 对于其他应用程序的用户体验也很重要 。 没有人喜欢缓慢的触摸屏界面或缓慢的Wi-Fi路由器 , 但通常原因在源代码中并不明显 , 如果问题根源在于软件设计 , 更快的处理器可能无济于事 。
可视化跟踪诊断可以轻松显示异常原因并测量软件时序属性、内存使用情况和CPU负载 。 更容易满足实时要求以及更好的应用程序性能和客户满意度是众多好处中的一部分 。5.使诊断变得容易获得并每天受益 。
【软件开发|嵌入式开发:加速多线程嵌入式软件开发的 5 个步骤】无需额外硬件 , 仅使用软件集成和应用程序的现有硬件即可提供可视跟踪诊断 。 这样 , 你可以默认将其包含在软件系统中 , 以便开发人员在整个开发、测试和发布过程中都可以访问 。 当你在遇到问题时随时提供诊断 , 所有嵌入式开发人员每天都可以从中受益 。 记录与你的应用程序相关的任何信息 , 包括运行时未公开的内部数据和状态 。 与可视化执行时间表并行查看所需的任何数据图 , 并制作出击败竞争对手的出色产品 。
- 安卓|谷歌发布Android 13开发者预览版,首批适配多款谷歌手机
- pi|安卓13来了!谷歌Android 13首个开发者预览版发布
- 安卓|首个Android 13开发者预览版来了,以重新关注隐私和安全为核心
- 美团|外卖商家为何不联合开发专属APP来摆脱美团压榨?作为外卖骑手我想说一说
- AR|Apple 正在为其即将推出的 AR/VR 耳机开发 real-OS
- 苏宁易购|优秀的软件开发及技术服务商——恒拓开源
- 投资|韩国将追加投资 283 亿韩元用于自动驾驶技术开发
- 安卓谷歌正在开发单独的 UWB API,允许第三方安卓 App 使用
- 突触器件|中国科大开发出媲美人脑能效的类脑突触原型器件
- met为元宇宙「打地基」,Meta 开发世界最快 AI 超级计算机