TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6678: ti.sdo.ipc.transports.TransportShm: line 388

Part Number:TMS320C6678Other Parts Discussed in Thread:SYSBIOS

尊敬的TI工程师,亲爱的前辈们,你们好:

我再使用CCS 5.5 使用SYSBIOS开发雷达的驱动程序,一片DSP+一片FPGA

使用多核核通信通信完成核心间的调度,主核在任务中不断循环调用MessageQ_put,从核在任务中通过MessageQ_get接收,在接收时,偶发的出现接收错误,错误讯息均为

ti.sdo.ipc.transports.TransportShm: line 388: assertion failure: A_regionInvalid: Region is invalid xdc.runtime.Error.raise: terminating execution

再出现这一信息后,从核在Expressions看messageQ中的消息都是乱了的,我怀疑时我内存冲突的问题,

参考了4.1. TI-RTOS Kernel — Processor SDK RTOS Documentation , TMS320C6678: ti.sdo.ipc.SharedRegion: line 380: assertion failure: A_idTooLarge: id cannot be larger than numEntries xdc.runtime.Error.raise: terminating execution – 处理器论坛 – 处理器 – E2ETm 设计支持,与文件中的doc

ipc_3_20_00_06

bios_6_35_04_50

备注:

在上一版本的文件中程序使用的时任务优先级都是0,跑的比较稳定,后来重新规划优先级以后,就老是出现MessageQ的各种问题,包含但不仅仅是:主核的信息从核收的到,但是从核回传的消息主核收不到;主核发了十多次就发送错误等。

主核配置

var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
var procNameAry = MultiProc.getDeviceProcNames();
//var procNameAry = [ “CORE0”, “CORE1”];
MultiProc.setConfig(null, procNameAry);

Ipc.procSync = Ipc.ProcSync_PAIR; /* Ipc_start 里同步所有核心*/
Ipc.sr0MemorySetup = true;

GateMP.maxRuntimeEntries = 8;
GateMP.RemoteCustom1Proxy = xdc.useModule('ti.sdo.ipc.gates.GateMPSupportNull');

SharedRegion.cacheLineSize = 128;
SharedRegion.numEntries = 8;
SharedRegion.translate = true;

/* 配置 SharedRegion #0 (IPC) */
var SHAREDMEM = 0x90000000
var SHAREDMEMSIZE = 0x10000000;

SharedRegion.setEntryMeta(0,
{ base: SHAREDMEM, len: SHAREDMEMSIZE,
ownerProcId: 0,
isValid: true,
name: "DDR_IPC",
});
for (var i = 0; i < 8; i++) {
Ipc.setEntryMeta({
remoteProcId: i,
setupMessageQ: true,
});
}

从核配置

/* 配置核心名 */
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
var procNameAry = MultiProc.getDeviceProcNames();
MultiProc.setConfig(null, procNameAry);

Ipc.procSync = Ipc.ProcSync_PAIR; /* Ipc_start 里同步所有核心*/
Ipc.sr0MemorySetup = true;

GateMP.maxRuntimeEntries = 8;
GateMP.RemoteCustom1Proxy = xdc.useModule('ti.sdo.ipc.gates.GateMPSupportNull');

/* 配置 SharedRegion #0 (IPC) */
var SHAREDMEM = 0x90000000
var SHAREDMEMSIZE = 0x10000000;

SharedRegion.setEntryMeta(0,
{ base: SHAREDMEM, len: SHAREDMEMSIZE,
ownerProcId: 0,
isValid: true,
name: "DDR_IPC",
});

for (var i = 0; i < 8; i++) {
Ipc.setEntryMeta({
remoteProcId: i,
setupMessageQ: true,
});
}

Nancy Wang:

堆栈使用是否有异常,通过ROV或者system analyzer工具分析看一下,是否能发现异常。

Ying 说:在上一版本的文件中程序使用的时任务优先级都是0,跑的比较稳定

When you configure tasks to have equal priority, they are scheduled in the order in which they are created in the configuration script.

task优先级都为0,会按创建的顺序执行,是否是任务执行顺序影响了。

,

Ying:

RVO发现不到问题,任务单步调试每次都是对的(我只是跑了20多次,但是不到问题)

,

Nancy Wang:

加大堆栈是否会有改善?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: ti.sdo.ipc.transports.TransportShm: line 388
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1