This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2640R2L:BLE 5观测器+广播设备

Guru**** 2388620 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1111749/cc2640r2l-ble-5-observer-broadcaster

器件型号:CC2640R2L

您好!

我已经了解到 CC2640R2没有 BLE 5多角色示例、因为中央和外设角色不能组合在闪存中。 我的问题是、观察者+广播者角色如何? 它们是否适合闪存?

谢谢、

Eyal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eyal、

    如果使用 BLE4堆栈、则观测器+广播设备项目应适合 CC2640R2。 但是、在 BLE5堆栈上执行此操作可能很困难。

    我建议参考   用户指南中的将 AUX RAM 用作 RAM 和将高速缓存用作 RAM 部分。 我还建议参考 无限制扫描 部分[仅限 BLE4]。 这些部分提供了一些为 CC2640R2应用获取更多 RAM 的策略。

    我也建议只包括必要的功能。 如果您从 BLE5 simple_peripheral 项目开始、那么我建议参考以下 E2E 线程:  

     https://e2e.ti.com/f/1/t/879265 

    .https://e2e.ti.com/f/1/t/880139

     https://e2e.ti.com/f/1/t/880163

     https://e2e.ti.com/f/1/t/880151/

    先前链接的线程讨论了可以对示例进行的更改、以尽可能节省空间

    如果不需要 BLE5、那么我建议针对这样的项目使用器件上的 BLE4堆栈。 但是,如果有必要,我建议参考前面链接的文件,并添加必要的内容。 如果您没有进行任何连接并且只是进行扫描和广播、那么您可能能够将应用程序安装在 BLE5堆栈上、但这一点之前尚未得到验证。

    此致、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。 我仅需要 BLE 5用于扩展广播能力(使用1M PHY)。

    我使用了 BLE 5堆栈中的简单广播设备示例、并删除了所有显示功能。 现在、它的闪存使用率为47%。 我已经从不同示例中复制了 Scan_Init 和 Scan_CB 函数(当然、还 修改了名称和#defines)、但我仍然遇到错误:

    "未解析的符号 GapScan_registerCb、首先在中引用 "

    与 GAP_Scanner 相关的每个函数。

    我已经尝试 #include 位于 Main.c 和 simple_broadcaster .c 的顶部、但它没有帮助。

    是否可能需要在项目中包含预处理器#define (例如、当您想要周期性同步时、您需要添加#define  USE_RETERRAY_ADV)? 或者可能需要编辑一些.cfg 文件以包含 GAP 扫描仪功能?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eyal、

    我建议参考 simple_central 示例、以查看启用扫描所需的一切。 我将确保复制所需的所有#include 语句。 包括 #include 进行比较。 我还建议参考 simple_central 头文件、以查看应包含哪些其他内容、从而在您的应用中启用扫描。

    此致、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不知疲倦地介绍了 simple_central 示例和 CC2642的多角色示例(我知道这是一个不同的 SDK、但堆栈功能几乎完全相同)。simple_broadcaster 具有 #include 它包含 所有 iCall API -包括 GAP 扫描仪。

    我看不到任何实际的预定义符号、因为它们都被组合在 ${COM_TI_SIMPLELINK_CC2640R2_SDK_symbols}下、我不知道它包含什么、尽管查看此 SDK 的堆栈配置、似乎没有任何相关的内容需要添加。

    我尝试将 ble5_simple_central_cc2640r2lp_stack_library 添加为项目参考、但没有成功。

    我已经尝试更改   ble5_simple_broadcaster _cc2640r2lp_stack_library\tools\下的 build_conofig.opt

    /* BLE Host Build Configurations */
    /* -DHOST_CONFIG=PERIPHERAL_CFG */
    /* -DHOST_CONFIG=CENTRAL_CFG */
    /* -DHOST_CONFIG=BROADCASTER_CFG */ <-Comment Out
    /* -DHOST_CONFIG=OBSERVER_CFG */
    /* -DHOST_CONFIG=PERIPHERAL_CFG+OBSERVER_CFG */
    -DHOST_CONFIG=CENTRAL_CFG+BROADCASTER_CFG <-Comment in
    /* -DHOST_CONFIG=PERIPHERAL_CFG+CENTRAL_CFG */
    /* -DHOST_CONFIG=BROADCASTER_CFG+OBSERVER_CFG */

    但是、这只会将以前的"未解析符号"错误替换为给出错误的不同函数。

    阅读相关内容、问题似乎出在 ble5_simple_broadcaster _cc2640r2lp_stack_library.lib 中、 它出现在 ble5_simple_broadcaster _cc2640r2lp_stack_library\FlashROM_Library\中

    似乎我需要一个链接相关库  的.lib、尽管我不知道从哪里开始。

    这个问题对我们的项目非常重要、我们非常感谢任何专业和深入的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eyal、

    我做了一些进一步的研究、发现以下主题提供了一些有用的信息: https://e2e.ti.com/f/1/t/739609

    您能否截取您观察到的内存分配的屏幕截图? 应用程序中的空间可能会不足。

    此致、

    1月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jan、

    成功! 根据链接的论坛、我只需  手动将 gattservapp_util.c 和 sm_ecc.c 添加到项目中。  连同 BUILING_CONofig.opt 的编辑、代码已经符合并且没有错误。 闪存大小为96、046kb (75%)、这一点还不错。

    我将在周日测试功能、如果发现功能、我将解决该问题。 我强烈建议 TI 为 BLE 5  简单广播设备+观测器添加一个工作示例、因为它看起来在合理的闪存大小内、并且是一个追求功能的示例。  

    谢谢、

    Eyal

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eyal、

    我很高兴听到该项目能够编译、您仍有一些闪存! 如果有任何其他问题、请告知我们。

    此致、

    1月