Thread 中讨论的其他器件:SYSBIOS
工具/软件:TI-RTOS
我更喜欢避免在嵌入式系统中使用动态分配。 要在我的 xxx.cfg 文件中强制执行此操作、我必须执行以下操作:
VAR BIOS = xdc.useModule('ti.sysbios.BIOS');
BIOS.runtimeCreatesEnabled = false;
在我的应用程序代码中、我有静态分配的结构、例如:
静态结构{
bool 已初始化;
GateMutex_Structgate;
} Crc32State ={ false };
在应用程序启动期间、我在以下结构上调用 XXX_constructure:
如果(!Crc32State.initialized){
GateMutex_construction (&Crc32State.gate、NULL);
Crc32State.initialized = true;
}
*请注意,我也尝试过这种方法,其中传递了静态分配的 GateMutex_Params 而不是 NULL,但它没有产生什么不同。
对 GateMutex_con构 的调用失败并报告错误:
TI.SYSBIOS.Gates.GateMutex:创建策略错误
xdc.runtime.Error.raise:终止执行
如果我按照回调堆栈操作、我会在自动生成的文件 Gateway_pem4f.c 中找到此代码:
/*构造*/
void ti_sysbios_gates_GateMutex_construct(ti_sysbios_gates_GateMutex_Struct*__obj,const ti_sysbios_gates_GateMutex_Params *__paramsPtr )
{
XDC_runtime Error_raiseX (NULL、ti_sysbios_gates_GateMutex_Module_id__C、NULL、0、XDC_runtime Error_E_E_generic、 (XDC_IArg"创建策略错误"、0);
}
似乎我配置了一些项目选项错误。 XXX_contrauct 方法的要点不是不需要动态分配?
感谢你的帮助。
