Thread 中讨论的其他器件:SYSBIOS
工具/软件:Code Composer Studio
您好!
我已经为我们的定制 K2L 板构建了一个 C66 RTSC 应用二进制"dsp.out"。 文件大小约为2MB、我可以通过键入从 Arago Linux 命令提示符加载它
root@K2L-EVM:~μ A/tests# mpmcl reset dsp0
重置成功
root@K2L-EVM:~/tests# mpmcl load dsp0 dsp.out
加载成功
但是,当我尝试使用较大的文件(例如15MB 文件)时,它会失败,并且 mpm-daemon 会崩溃:
root@K2L-EVM:~μ A/tests# mpmcl reset dsp0
重置成功
root@K2L-EVM:~/tests# mpmcl load dsp0 dsp2.out
从套接字读取超时
加载失败(错误:0)
root@K2L-EVM:~/tests# mpmcl load dsp0 testAntiTree_DSP.out
无法向/var/run/mpm/mpm_demon 发送数据(错误:连接被拒绝)
加载失败(错误:0)
root@K2L-EVM:~μ A/测试#
在 u-boot 中、我已将环境变量"mem_reserve"设置为"512M"。
引导日志仅显示24MB:
[0.000000]将物理地址空间切换为0x8000000
[0.000000]保留内存:创建了0x000000081f800000的 CMA 内存池,大小为8 MIB
[0.000000]保留存储器:初始化节点 DSP_common_CMA_pool、兼容 id shared-dma-pool
[0.000000]保留存储器:已创建 DMA 存储器池、地址为0x0000000820000000、大小为32 mib
[0.000000]保留存储器:已初始化节点 DSP_RESERVE_mpm_area、兼容 id shared-dma-pool
[0.000000] CMA:保留0x000000085e800000处的24 MIB
我是否理解正确、这里是否也应该是512 MIB?
生成的映射文件显示如下所示的存储器配置:
存储器配置
名称源长度使用未使用的属性填充
------------ ---- ------ ---- ---- --------
L2SRAM 00800000 00100000 00000258 000ffda8 RW X
MSMCSRAM 0c000000 00600000 00000000 00600000 RW X
DDR3 80000000 80000000 0b5c12c4 74a3ed3c RWIX
这是可以的吗?
当我将二进制文件加载到多个 DSP 内核时、 我是否需要修改每个存储器的存储器配置、或者 mpm-daemon 是否足够巧妙、能够像上述那样将代码和数据重新定位到映射文件中所有3个存储器段中的存储器可用区域中?
上述 MSMCSRAM 的大小错误。 K2L 只有1MB 的存储器、但无论如何我不会将任何代码放入其中、因此无关紧要、对吧?
此外、我是否需要设置一些特殊的链接器标志、如"生成可重定位的输出模块"、或者是否应该将链接器输出选择保留为其默认值?
此致、
Ari