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.

[参考译文] CC2652R:内存损坏

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1396952/cc2652r-memory-corrupting

器件型号:CC2652R

工具与软件:

您好!

因此我们将面临内存损坏的问题。 我们的代码 基于 project_zero 示例构建、我想知道为信标、线程、互斥量和条件使用 POSIX 库是否会影响我们在代码中动态创建这些工具。 我们还想知道在哪里必须完成这些工具的初始化 、例如、初始化是在 BIOS_start 函数之前或之后、在 project_zero 任务构建之前或之后、甚至是可以静态完成。  

谢谢!
Kenneth Thomas  

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

    您好、Kenneth:

    TI-POSIX 用户指南 包含有关在 main 与任务的调用上下文中允许使用哪些 POSIX API 的信息。   BLE5-Stack 用户指南中还提供了一些 POSIX 支持信息。

    您能否说明您怀疑与 PROJECT_ZERO 存在哪些差异可能导致内存损坏?  我还建议查看 调试指南 、以获得更多的内存调试建议。

    此致、
    Ryan

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

    您好、Ryan、

    感谢您阅读 POSIX API 指南。 我认为这不是问题所在。 因此、代码与 PROJECT_ZERO 有很大区别、但它使用其 BLE 堆栈实现无连接;OAD 我们还有从运行应用的 ProjectZero_taskFxn 调用的分离线程。 我们的应用程序有自己的消息队列、并且 在 处理消息时消息对象中的某些数据成员似乎失去了其值、现在使用的是地址值。 我们尝试了很多方法、例如从 shared_ptrs 切换到普通指针、检查任务和系统堆栈的堆栈大小、使用堆指标和更改堆栈/信标的初始化位置(在 main 中完成   )、然后还尝试将其移至 ProjectZero_taskFxn 中。 感谢您在上一篇文章中提供的文档、这似乎是 NMI 例外。 我在这个论坛:https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1387403/cc2652r-bluetooth-stack-does-not-work-when-memory-allocations-are-made-before-icall_createremotetasks/5306148?tisearch=e2e-sitesearch&keymatch=heap%2525252520corruption#5306148上读到 ,在 API 中可能有一个关于堆管理的错误。 如果您对我们的尝试还有更多想法、那将非常棒。

    谢谢!
    肯尼思

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

    您好、Kenneth:

    感谢您的咨询。 您能否详细介绍一下已向 PROJECT_ZERO 添加的内容? 为了确保我理解、你是否要从 ProjectZero_taskFxn 中创建一个新线程? 我可以知道该线程在做什么吗? 它是 ICall 寄存器(查看此链接)吗? 关于前面提到的 iCall_allocate()的线程,我们仍在研究它,我们会很快回到你,但我认为我们需要先更好地了解你的情况。

    您可以使用 TI-RTOS 对象查看器 和遵循 调试常见问题指南的堆 来监视堆栈、以查看是否存在内存泄漏迹象。

    BR、


    David