工具/软件: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。