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.

[参考译文] RTOS/CC2650:SimpleLink 应用结构中是否允许 HeapBuff?

Guru**** 2587365 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/596622/rtos-cc2650-is-heapbuff-allowed-within-a-simplelink-application-structure

器件型号:CC2650

工具/软件:TI-RTOS

您好!

我当前正在运行一个不带应用程序/堆栈接口的常规 RTOS 系统... 简单的 Launchpad 实现。 在此代码中、我将自己的定制制作的 HeapBuf 用于定制制作的链接列表(在其相应的 IHeap 升级转换上使用 Memory_Alloc 和 Memory_Free)。 我现在正在寻找 SimpleLink App/BLE Stack 版本的简单代码、我已经阅读了该代码

"由于共享资源和维护进程间通信、应用程序必须使用以下 iCall 原始服务函数:•消息传递和线程同步•堆分配和管理"


这是否意味着我无法再使用我的定制的 HeapBuf、现在只能使用 iCall_Alloc 和 iCall_Free 分配给预定义的 iCall 堆? 我正在努力弥合常规 RTOS 代码与实现应用/BLE 堆栈基础设施的代码之间的差距(慢慢理解、但这是一次上坡)

谢谢你

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

    您应该可以在应用中调用 HeapBuf API、因为它们不会被阻止。 当然、将存储器传递到堆栈需要使用 GATT_BM_alloc API。

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我只是使用 HeapBuf、为什么必须使用 Gat 来分配内存? 我不能只使用 Memory_alloc?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有说您必须使用 GATT API 来分配存储器、我说过如果您为堆栈提供存储器(例如、对于发送 GATT 通知 PDU)、则必须使用 GATT BM API。 如果你只是为你的应用分配内存、他们你可以使用任何支持的函数。

    祝你一切顺利