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:CPPI 堆分配静态或动态

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/570181/rtos-cppi-heap-allocate-static-or-dinamic

Thread 中讨论的其他器件:TMS320C6678

工具/软件:TI-RTOS

我使用 c6678。
已使用 cppiHeap 动态分配、但在加电90%的时间内、器件在 cppi_memory_allocate 的 init 上折叠。
我将其更改为静态分配、如用户指南中所述:

/ /
define SIZE SPI_CPPI_HEAP 1024 //应足够大以适合所有共享
* CPPI 通道和流对象*/

/*由于 IPC 确实创建了 A、因此为 CPPI 静态创建了共享堆
*在 IPC_Attach 之前的共享区堆*/
#pragma DATA_SECTION (cppiHeap、".cpi_heap);
#pragma DATA_ALIGN (cppiHeap、128)
uint8 cppiHeap[size_cppi_heap];

int32 systemInit (空)

cpi_InitCfg cpiHeapInit;//静态 CPPI 堆*/

(笑声)

/*配置 Cppi_init()参数以配置静态堆*/
cppiHeapInit.heapParams.staticHeapBase =&cppiHe[0];
cppiHeapInit.heapParams.staticHeapSize = size_cppi_heap;
cppiHeapInit.heapParams.heapAlignPow2 = 7;//功率7 (128字节)*/
cppiHeapInit.heapParams.DynamicHeapBlockSize =-1;//如果块耗尽,则关闭 malloc
结果= Cppi_initCfg (&cppiGblCfgParams、&cppiHeapInit);

/ /

问题:
1.动态分配可能会崩溃的原因是什么?
2.如何在静态分配上计算必要的 cpiHeap 大小。
TI 建议的分配类型。

在高级方面、谢谢您、
Leon。

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

    您使用的是什么器件?

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

    您是否正在使用 BIOS 多核 SDK?

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

    我使用 TMS320C6678并使用 SYS/BIOS PDK。

    我使用的是 PA LLD、而不是 NDK。

    Leon。