| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 调试基于 Zephyr 的 IoT 应用程序的最佳实践 -> 正文阅读 |
|
[嵌入式]调试基于 Zephyr 的 IoT 应用程序的最佳实践 |
Linux 基金会Zephyr 开源项目已经成长为许多物联网项目的支柱。Zephyr 提供一流的小型、可扩展的实时操作系统 (RTOS),针对资源受限的设备在多个架构中进行了优化。该项目目前有 1,000 名贡献者和 50,000 次提交,为多种架构构建高级支持,包括 ARC、Arm、Intel、Nios、RISC-V、SPARC 和 Tensilica,以及 250 多个板。 与 Zephyr 合作时,有一些重要的考虑因素要保持事物的连接和可靠运行。开发人员无法在他们的办公桌上解决所有类别的问题,有些问题只有在设备群增长时才会变得明显。随着网络和网络堆栈的发展,您需要确保升级不会引入不必要的问题。 例如,考虑我们部署 GPS 跟踪器来跟踪农场动物的情况。该设备是一种占地面积小、基于传感器的项圈。在任何一天,动物从移动网络漫游到移动网络;从一个国家到另一个国家;从一个位置到另一个位置。这种运动很快暴露了错误配置和意外行为,这些错误配置和意外行为可能导致电力损失,从而导致巨大的经济损失。我们不需要只知道一个问题,我们需要知道它为什么会发生以及如何解决它。使用联网设备时,远程监控和调试对于即时了解问题所在、解决问题的最佳步骤以及最终如何建立和维护正常操作至关重要。 我们使用 Zephyr 和基于云的设备可观察性平台 Memfault 的组合来支持设备监控和更新。根据我们的经验,您可以利用这两者来建立使用重启、看门狗、故障/断言和连接指标进行远程监控的最佳实践。 建立一个可观察性平台 Memfault允许开发人员远程监控、调试和更新固件,这使我们能够: 避免生产冻结,以支持最小可行产品和第 0 天更新 假设您看到设备上的重置数量大幅增加。这通常是拓扑中的某些内容已更改或设备由于硬件缺陷而开始出现问题的早期指标。这是开始了解设备运行状况时可以收集的最小信息,它有助于将其分为两部分来考虑:硬件重置和软件重置。 硬件复位通常是由于硬件看门狗和掉电。软件复位可由固件更新、断言或用户启动引起。 在确定正在发生什么类型的重置后,我们可以了解是否存在影响整个队列的问题,或者是否仅限于一小部分设备。 记录重启原因 Zephyr 有一种注册区域的机制,这些区域将在 Memfault 挂钩的重置中保留。如果您要重新启动平台,我们建议您在开始之前立即保存。当您重启平台时,记录重启的原因——在本例中为固件更新——然后将其称为 Zephyr sys_reboot。 在 Zephyr 上捕获设备重置 注册用于读取启动信息的 init 处理程序 您可以设置一个宏,通过 MCU 复位原因寄存器在复位前捕获系统信息。当设备重新启动时,Zephyr 将使用system_int 宏注册处理程序。MCU 复位原因寄存器的名称略有不同,它们都很有用,因为您可以查看是否存在任何硬件问题或缺陷。 示例:电源问题 让我们看一个示例,说明远程监控如何通过查看重新启动和电源供应情况来深入了解车队的健康状况。在这里我们可以看到少数设备的重启次数超过 12,000 次(图 1)。 设备投入生产后,您可以通过固件更新来处理其中的许多问题。推出更新可让您解决硬件缺陷并避免尝试恢复和更换设备。 第二个重点领域:看门狗 使用连接的堆栈时,看门狗是使系统恢复到干净状态而无需手动重置设备的最后一道防线。挂起的原因有很多,例如 send() 上的连接堆栈块 Zephyr 有一个硬件看门狗 API,所有 MCU 都可以通过通用 API 来设置和配置平台中的看门狗。(更多细节见 Zephyr API 转到设备树并设置 Nordic nRF watchtime 文件夹。 示例:SPI 驱动程序卡住 让我们再次转向一个未在开发中发现但在现场出现的问题的示例。在图 2 中,您可以看到时序、事实和 SPI 驱动器芯片的退化。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:30:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |