主题中讨论的其他器件: CC2651P3、 CC2651R3
你(们)好
我正在研究该项目的 BLE 支持。 如您所见、我们正在使用 Zephir 项目来实现我们的想法。
https://github.com/beagleboard/beagleconnect
我们可以考虑在 Zephir 上实现 BLE 功能支持的两种方法。
- 使用 Zephir 的 BLE 协议栈、直接使用从 MAC 层移植的 Simplelink 射频 API。
虽然这种办法需要大量工作,但我们仍然作出了一些努力。 下面是我们在团队中完成的一些工作、您可以看到、只有部分广播功能、我们很难继续。 主要原因是 Zephir 的 BLE 堆栈不是为 TI 的 MCU 设计的、而是更适合具有超过128K RAM 的 Nordic MCU。 CC1352P 只有80K 的 RAM、因此很难朝这个方向发展。
https://github.com/leadercxn/zephyr/tree/cc135x_ble
- 从 HCI 层开始、顶层应用程序使用 Zephyr 功能。
从这里开始可能更合适、我们已经看到了 Zephir 项目中的许多实施、例如 esp32、stm32wb、甚至 nrf53系列、它们应该是更合适的行。
https://github.com/zephyrproject-rtos/zephyr/tree/main/drivers/bluetooth/hci
我们甚至看到您在官方文档中提供了一些指导。 这些图表非常有用、并且非常清楚地说明了要做什么。
但当我们朝这个方向开始时、我发现 TI ble5stack 强烈绑定到 TI RTOS、无法移植到第三方 RTOS。
simplelink_cc13x2_26x2_sdk_5_20_00_52/source/ti/ble5stack/iCall/src/iCall.c
/rom/enc_lib/c26xx_ecc_rom_api.a
/rom/r2/rt_init/rt7M_tL.a
/libraries/cc1352p/OneLib.A
/libraries/cc1352p/StackWrapper.A
/libraries/cc13x2r1/OneLib.A
/libraries/cc13x2r1/StackWrapper.A
/libraries/cc2651p3/OneLib.A
/libraries/cc2651p3/StackWrapper.A
/libraries/cc26x2r1/OneLib.A
/libraries/cc26x2r1/StackWrapper.A
/libraries/cc2651r3/OneLib.A
/libraries/cc2651r3/StackWrapper.A
/* Note that a static variable can be used to contain critical section * state since heapmgr.h template ensures that there is no nested * lock call. */ static ICall_CSState ICall_heapCSState; #if defined(HEAPMGR_CONFIG) && ((HEAPMGR_CONFIG == 0) || (HEAPMGR_CONFIG == 0x80)) #include <rtos_heaposal.h> #elif defined(HEAPMGR_CONFIG) && ( (HEAPMGR_CONFIG == 1) || (HEAPMGR_CONFIG == 0x81)) #include <rtos_heapmem.h> #elif defined(HEAPMGR_CONFIG) && ( (HEAPMGR_CONFIG == 2) || (HEAPMGR_CONFIG == 0x82)) #include <rtos_heaptrack.h> #else #include <rtos_heaposal.h> #endif
1、您能否提供代码示例以验证您的正式文档中的图表?
2、如果1无法帮助我们、 我们如何使 TI BLE3STACK 与 TI RTOS 解除绑定、我们可以使用 Zephir RTOS 作为协议栈运行的内核。
3、如果我们想实现我们的想法、您有哪些更好的建议?