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/F28M36P63C2:XDC_Runtime_IHeap_alloc 失败

Guru**** 2599795 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/586388/rtos-f28m36p63c2-xdc_runtime_iheap_alloc-failure

器件型号:F28M36P63C2
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

我已通过以下电话编写代码:

  • TI_SYSBIOS_family_c28_Hwi_create
  • core_CreateObject
  • memory_calloc (实际上是 XDC_runtime _Memory_calloc__E)
  • xdc_runtime_Memory_valloc__E
  • xdc_runtime_Memory_alloc__E
  • xdc_runtime_IHeap_alloc

这会导致位于\ti\xdctools_3_32_00_06_core\packages/XDC\runruntime \IHeap.h 中的以下函数:

静态内联 XDC_PTR XDC_Runtime_IHeap_alloc (XDC_Runtime_IHeap_Handle __inst, XDC_SizeT size,XDC_SizeT align,XDC_Runtime_Error_Block *EB)
{
return __inst->__Fxns->alloc((void*)__inst, size,align,eb);
}

当我跟踪到__inst->Fxns->alloc()调用时,我最终得到了错误的地址(boot_cG.asm 中 start_Pinit 的几个字节害羞)。

如何配置__inst->__Fxns->alloc()指针,以及如何/在哪里可能会错误配置它?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Steve、
    您使用的是哪个堆管理器? 如果你正在使用 HeapMem、你的内存映射中应该有一个 ti_sysbios_堆_HeapMem_Module_Fxns__C 的地址。 该对象是__Fxns。 您能否检查存储器映射中的地址是否与要提取 alloc 的地址相匹配?
    如果你想查看 ti_sysbios_堆_HeapMem_Module_Fxns__C 的布局、如果你在 CCS 中构建、你应该在 Debug/configPkg/package/cfg/中查看一个自动生成的 C 文件。 如果没有、请告诉我您正在使用哪些 TI 产品以及如何构建您的应用。