Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
您好!
我们正在 C6670上开发系统。 在开发的某个阶段、我们意识到需要有多个堆。 在此之前,malloc()和 free()可以方便地路由到它们的实际实现,而开发人员并没有为此而烦恼。 现在、正如我们所希望的、除了默认堆、我们还需要使用一些其他 API。
据我所知、DSP/BIOS 中的 MEM_alloc 和 MEM_FREE 现在被 SYSBIOS 的 Memory_alloc 和 Memory_free 所取代。
我知道如何通过配置脚本创建其他堆。 我想知道 Memory_alloc 和 Memory_free 的目标用法是什么。 前面的内容相对清晰、堆句柄、块大小和对齐看起来都是相关的、也是合理的。 使我卡住的是无内存的预期用途。 我可以理解显式传递堆句柄参数、但为什么该 API 需要显式指定块大小才能释放? 使用 malloc()的人员很少会被请求跟踪块大小。 这是否意味着、使用多个堆、从而使用 Memory_free 必须保留已分配块的记录?
当然、我知道、在指针返回之前、存在有关此分配的"隐藏"记录、并在那里进行窥探、我可以找到块大小。 但是、我感觉不是 API 的预期用途。
我知道我要问的问题非常简单和基本,但请引导我了解 Memory_free ()的一些实际用法指南或示例。
提前感谢。