bluetooth - Zephyr 操作系统理解
问题描述
最初,我为原生 linux 构建了 Zephyr 蓝牙应用程序,并在 BLE 控制器上与 Bluez 一起运行它。我知道在这方面,Linux OS 和 Bluez 与 Zephyr 主机堆栈一起使用。
现在,我已经成功地将蓝牙应用程序从 Zephyr 堆栈(samples/bluetooth/beacon)刷到了 NXP 板上。这里没有使用 bluez。对于这种情况,我有几个基本的理解问题: 1. OS 功能是否也嵌入在应用程序编译后创建的 bin 文件中。我的意思是我知道蓝牙堆栈是 Zephyr,但是板上使用的是哪个操作系统?2. 另外,Zephyr 蓝牙堆栈中的 Bluez 中是否有类似 hcitool 的功能?3、有没有btmon或者hcidump之类的功能?
解决方案
回答您的问题:-
- Zephyr 本身就是一个操作系统——它是一个运行在许多不同类型硬件之上的实时操作系统 (RTOS),就像 Linux 是一个在许多不同硬件之上运行的操作系统一样。Zephyr 主要是用 C 语言编写的,并且在后台使用其寄存器和供应商的堆栈直接与特定处理器对话。您可以在此处找到所有支持的板的列表 。
- 与 hcitool 不同,但有一个 hci 层示例允许您发送原始 hci 命令。您可以在此处和此处找到更多详细信息。归根结底,您可能不需要使用 hci,因为它是一个低层,您可能可以通过更高级别的 API 实现相同的功能。所有 Zephyr 的蓝牙示例都可以在这里找到。
- 同样,没有什么比 Linux 上的 btmon 更能让您看到每个命令的原始 HCI 数据包,但 Zephyr 确实支持不同的蓝牙日志记录选项,具体取决于所使用的硬件。更多信息可以在这里找到。
我希望这有帮助。
推荐阅读
- node.js - 如何使用带有 node.js 代码的 AWS lambda 从 url 下载文件
- jquery - 如何使用 jquery 添加保存/编辑按钮?
- javascript - 我想将根据自定义字段中的百分比计算的常规价格显示为 woocommerce 中的关键事件
- android - 如何使用 ConstraintSet 设置类似 app:layout_constraintBottom_toBottomOf 的内容?
- excel - 如何在excel vba的同一case语句中使用缺失值和布尔值
- javascript - 当状态在ag-grid angular中处于活动状态或不活动状态时如何更改图标
- ruby-on-rails - 为 Amazon S3 设置凭证时出现 KeyError
- python - 如何使用python自动将基于CSV的表创建到postgres中
- java - 当我在android studio中使用Volley将图片上传到远程服务器时得到空响应 - java
- spring-data-jpa - Spring boot JPA多对多关联问题