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