Zephyr OS 了解

Zephyr OS understanding

最初我为原生 linux 和 运行 构建了 Zephyr 蓝牙应用程序,它与 BLE controller.I 上的 Bluez 一起理解,Linux OS 和 Bluez 与 Zephyr 主机堆栈一起使用。

现在,我已经成功地将蓝牙应用程序从 Zephyr 堆栈 (samples/bluetooth/beacon) 刷入 NXP 板。这里没有使用 bluez。 对于这种情况,我有几个基本的理解问题: 1. OS 功能是否也嵌入到应用程序编译后创建的 bin 文件中。我的意思是我知道蓝牙堆栈是 Zephyr,但是机上使用了哪个 OS? 2. 另外,Zephyr 蓝牙协议栈中是否有类似于 Bluez 中的 hcitool 的功能? 3.有没有btmon或者hcidump之类的功能?

回答您的问题:-

  1. Zephyr 本身就是一个 OS - 它是一个实时操作系统 (RTOS) 运行在许多不同类型的硬件之上,就像 Linux 是一个运行在许多不同之上的操作系统 硬件。 Zephyr 主要是用 C 语言编写的,并且在幕后会谈 直接到特定的处理器使用其寄存器和 供应商的堆栈。您可以找到所有支持的板的列表 here.
  2. 与 hcitool 不同,但有一个 hci 层示例 允许您发送原始 hci 命令。您可以找到更多详细信息 这个here and here。在一天结束时,你可能不会 需要使用 hci,因为它是低层,您可能可以 通过更高级别 API 实现相同的功能。所有和风的 可以找到蓝牙示例 here.
  3. 再说一遍,Linux 上的 btmon 完全不同,您如何查看原始 HCI 每个命令的数据包,但 Zephyr 确实支持不同的 蓝牙日志记录选项取决于所使用的硬件。更多的 有关这方面的信息,请参见 here.

希望对您有所帮助。