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.
TI工程师你们好:
工作一年辛苦了,新春快乐。
在使用C6638ARM加载Linux系统时(版本为:K2_LINUX_03.10.10_14.07),linux系统加载地址为0x80000000,使用 mpmcl run dsp0-7可以正常加载dsp。
参考如下地址: http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Exploring
中的How to run Linux kernel from a different physical address than default (0x80000000) ?
将系统搬移到了0xa0000000,系统起来后是用CCS重新编译.out将out的内存地址分配在0x80000000-0x9fffffff;
修改系统启动后的/etc/mpm/mpm_config.json
{
"parser-version": "1.0.0.0",
"_cmdfile": "/etc/mpm/slave_cmds.txt",
"outputif": "/var/log/mpmsrv.log",
"scratchaddr": "0x9FFFFC00", 之前是"scratchaddr": "0xBFFFFC00",
"scratchlength": "0x400",
"socketperm": "0777",
"segments": [
{
"name": "local-core0-l2",
"localaddr": "0x00800000",
"globaladdr": "0x10800000",
"length": "0x100000",
"devicename": "/dev/dsp0"
},
{
"name": "local-core1-l2",
"localaddr": "0x00800000",
"globaladdr": "0x11800000",
"length": "0x100000",
"devicename": "/dev/dsp1"
},
{
"name": "local-core2-l2",
"localaddr": "0x00800000",
"globaladdr": "0x12800000",
"length": "0x100000",
"devicename": "/dev/dsp2"
},
{
"name": "local-core3-l2",
"localaddr": "0x00800000",
"globaladdr": "0x13800000",
"length": "0x100000",
"devicename": "/dev/dsp3"
},
{
"name": "local-core4-l2",
"localaddr": "0x00800000",
"globaladdr": "0x14800000",
"length": "0x100000",
"devicename": "/dev/dsp4"
},
{
"name": "local-core5-l2",
"localaddr": "0x00800000",
"globaladdr": "0x15800000",
"length": "0x100000",
"devicename": "/dev/dsp5"
},
{
"name": "local-core6-l2",
"localaddr": "0x00800000",
"globaladdr": "0x16800000",
"length": "0x100000",
"devicename": "/dev/dsp6"
},
{
"name": "local-core7-l2",
"localaddr": "0x00800000",
"globaladdr": "0x17800000",
"length": "0x100000",
"devicename": "/dev/dsp7"
},
{
"name": "local-msmc",
"globaladdr": "0x0c000000",
"length": "0x600000",
"devicename": "/dev/dspmem"
},
{
"name": "local-ddr",
"globaladdr": "0x80000000",之前是"globaladdr": "0xA0000000"
"length": "0x1FFFFC00",
"devicename": "/dev/dspmem"
},
{
"name": "local-msmc-hyplnk",
"globaladdr": "0x0C000000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core0-hyplnk",
"globaladdr": "0x10800000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core1-hyplnk",
"globaladdr": "0x11800000",
"length": "0x10000",
"devicename": "/dev/mem"
},
{
"name": "local-core2-hyplnk",
"globaladdr": "0x12800000",
"length": "0x10000",
"devicename": "/dev/mem"
}
],
"slaves": [
{
"name": "dsp0-hyplnk",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core0-hyplnk", "local-msmc-hyplnk"],
"direction": "loopback",
"hyplnkinterface": "hyplnk0",
"txprivid": 12,
"rxprivid": 12,
"rxsegsel": 6,
"rxlenval": 21,
"refclkMHz": "312p5",
"serialrate": "6p25",
"lanerate": "half",
"numlanes": "4"
},
{
"name": "dsp1-hyplnk",
"coreid": 1,
"transport": "hyperlink",
"memorymap": ["local-core1-hyplnk"],
"hyplnkmaster": "dsp0-hyplnk"
},
{
"name": "dsp2-hyplnk",
"coreid": 2,
"transport": "hyperlink",
"memorymap": ["local-core2-hyplnk"],
"hyplnkmaster": "dsp0-hyplnk"
},
{
"name": "arm-remote-hyplnk-1",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core0-hyplnk", "local-msmc-hyplnk"],
"direction": "remote",
"hyplnkinterface": "hyplnk0",
"txprivid": 12,
"rxprivid": 12,
"rxsegsel": 6,
"rxlenval": 21,
"refclkMHz": "312p5",
"serialrate": "6p25",
"lanerate": "half",
"numlanes": "4"
},
{
"name": "arm-remote-hyplnk-2",
"coreid": 0,
"transport": "hyperlink",
"memorymap": ["local-core1-hyplnk"],
"hyplnkmaster": "arm-remote-hyplnk-1"
},
{
"name": "dsp0",
"coreid": 0,
"transport": "sharedmemory",
"memorymap": ["local-core0-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp1",
"coreid": 1,
"transport": "sharedmemory",
"memorymap": ["local-core1-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp2",
"coreid": 2,
"transport": "sharedmemory",
"memorymap": ["local-core2-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp3",
"coreid": 3,
"transport": "sharedmemory",
"memorymap": ["local-core3-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp4",
"coreid": 4,
"transport": "sharedmemory",
"memorymap": ["local-core4-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp5",
"coreid": 5,
"transport": "sharedmemory",
"memorymap": ["local-core5-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp6",
"coreid": 6,
"transport": "sharedmemory",
"memorymap": ["local-core6-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
},
{
"name": "dsp7",
"coreid": 7,
"transport": "sharedmemory",
"memorymap": ["local-core7-l2", "local-msmc", "local-ddr"],
"crashcallback": "/etc/mpm/crash_callback.sh"
}
]
}
修改完成后重新启动运行加载DSP.out程序
root@keystone-evm:~# ./run_dsp.sh
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
reset succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
load succeeded
[ 167.820864] remoteproc0: powering up 2620040.dsp0
[ 167.844457] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 167.849948] remoteproc0: registered virtio0 (type 7)
[ 167.885950] remoteproc0: stopped remote processor 2620040.dsp0
./run_dsp.sh: line 17: 1753 Segmentation fault mpmcl run dsp0
运行到此处卡死了ctrl+c也停止无非结束
此处不明白是不是那里还需要配置没有处理导致核0会挂死在这里,此处run dsp的时候为什么为会报如下错误,如何查找根源。