txm_module_object_allocate((void **)obj_ptr,sizeof(obj))如何工作?

问题描述 投票:0回答:1

[每当我尝试创建对象(队列,线程或字节池)时,我只能通过动态内存分配来创建它们;如果我尝试静态内存分配,它将失败。

我无法在文档的任何地方找到txm_module_object_allocate API。

//Works:
TX_BYTE_POOL* my_byte_pool=NULL;
txm_module_object_allocate(&my_byte_pool, sizeof(TX_BYTE_POOL));
tx_byte_pool_create(my_byte_pool, "Task Pool", free_memory_task, 16*1240);

//Fails:
TX_BYTE_POOL my_byte_pool;
tx_byte_pool_create(&my_byte_pool, "Task Pool", free_memory_task, 16*1240);

在第二种情况下,我总是收到tx_byte_pool_create失败的错误。

c memory memory-management rtos threadx
1个回答
0
投票

[是,txm_module_object_allocate期望第一个参数是类型TX_BYTE_POOL的指针。因此,正确的语法或要调用的函数是txm_module_object_allocate(&my_byte_pool,sizeof(TX_BYTE_POOL));

© www.soinside.com 2019 - 2024. All rights reserved.