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.

[参考译文] LAUNCHXL-CC26X2R1:多角色 FreeRTOS 示例卡在 vportENTER_CRITICAL ()

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1424219/launchxl-cc26x2r1-muti-role-freertos-example-stuck-at-vportenter_critical

器件型号:LAUNCHXL-CC26X2R1
Thread 中讨论的其他器件:BLE-STACK

工具与软件:

大家好、我将使用 CC13xx 和 CC26xx SDK 6.41中多角色 FreeRTOS 示例启动 CC26x2R1电路板。

当我运行这个项目时,它卡在 port.c / vportENTER_CRITICAL ()/ configASSERT()。

如果我删除该行、它将 正常工作。 但我担心它会在某天内导致错误。

我跟踪该代码后发现它可能由 BLE-Stack API (如  GAP_GetDevAddress ())引起。

似乎 API 函数会进入 isr、但会调用 taskENTER_CRITICAL ( )、而不是 taskENTER_CRITICAL_FROM_ISR()。

或者它是由其他问题引起的、但我找不到解决这个问题的方法。

有人可以帮我吗?

谢谢。

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

    您好!

    感谢您联系我们。 此问题是否在未进行任何修改的情况下出现在项目中? 如果不是、那么您能否分享重现该行为所做的修改?

    此致、

    1月

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

    感谢您的答复。

    我修改了一些设置、因为示例项目无法构建。

    • 将包含路径${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/kernel/freertos 添加到 MULTI_ROLE_CC26X2R1_LAUNCHXL_FREERTOS_gcc 项目中。 ( 如果没有,项目不能包括 /kernel/freertos/dpl )
    • 在 multi_role.syscfg 中添加具有默认值的 FreeRTOS 和 POSIX 设置
    • 在 main_freertos.c  #define TOTAL_ICALL_HEAP_SIZE 中更改为 16384 (因为原始 32768 + 16384将超过 SRAM 大小)

    我使用的是 FreeRTOS 202210.01-LTS。
    如果您需要更多信息、请告诉我、我会很快回复。 谢谢。

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

    您好!

    明白了。 默认情况下、该示例未正确构建、是不是开箱即用的? 是否是在按照用户指南中关于设置 FreeRTOS 的说明执行操作后出现的?

    此致、

    1月

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

    将 FREERTOS_INSTALL_DIR 添加到路径变量中后、便可成功生成 FreeRTOS 内核项目。  如果我运行默认的 muti-role 项目、可以 顺利构建和运行该项目。 但是、在 syscfg 中未启用 FreeRTOS 设置、我在 muti-role 项目中找不到 FreeRTOSConfig.h。  

    我还构建并运行 Demos/portableNative / FreeRTOS/GCC 编译器项目进行测试。 它会 正常工作。 在 portableNative 项目中、 启用 FreeRTOS 设置、 ${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/kernel/freertos 位于包含路径中。 但多角色则不然。

    也许我应该禁用 syscfg 中的 FreeRTOS 设置? 如果是这样、我应该如何使用配置 FreeRTOSFreeRTOSConfig.h

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

    您好!

    明白了。 感谢您提供更多信息。 您能否共享项目的压缩版本? 应该有一个 freertosconfig.h 文件。

    此致、

    1月

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

    我想我的问题已经解决了。 总之、出于某种原因、多角色 FreeRTOS 示例工程无法在 syscfg 中启用 FreeRTOS 设置、而 FreeRTOSConfig.h 位于 FreeRTOS 内核项目中。  抱歉、我没有注意到默认项目可 与 FreeRTOS 正确配合使用。

    感谢您的帮助!