工具/软件:Code Composer Studio
您好!
请有人告诉我如何使我的 DSP 应用.out 使用从0xa000 0000开始而不是从默认的0x8000 0000开始的内存。 基本上、我希望应用仅使用 DDR3。 L2SRAM 的一些次要分配也是可以的。 我需要重新定位应用程序、因为0x80000可能会覆盖 Ljnux 端的某个 ARM 并行运行的内容。 我还想运行同一 DSP 应用的3个实例、当然、它们不能相互覆盖或覆盖 Linux。
存储器配置
名称源长度使用未使用的属性填充
------------ ---- ------ ---- ---- --------
L2SRAM 00800000 00100000 00000258 000ffda8 RW X
MSMCSRAM 0c000000 00600000 00000000 00600000 RW X
DDR3 80000000 80000000 0b5c12c4 74a3ed3c RWIX
我尝试在 CCS6中使用.cmd、但它会发生冲突、因为 CCS 从某些特定于电路板的模板获取 DDR3起始地址。 我还尝试在目标配置文件(.cXML)文件中设置地址、但它允许我仅更改 ARM CPU 的 DDR3地址、而不是更改 DSP 的 DDR3地址。 SYS/BIOS cfg 文件仅配置堆内存。
下面是我在.cfg 中设置存储器映射的方法:
Program.sectMap[".const"]="DDR3";
Program.sectMap[".text"]="DDR3";
Program.sectMap[".code"]="DDR3";
Program.sectMap[".data"]="DDR3";
Program.sectMap[".sysmem"]="DDR3";
Program.sectMap["platform_lib"]="DDR3";
Program.sectMap[".csl_vect"]="DDR3";
Program.sectMap[".systemHeap"]="DDR3";
Program.sectMap[".far"]="DDR3";
Program.sectMap[".far"].loadAddress = 0xa000000; <--尝试过此操作,但它不起作用
我还尝试了以下技巧、但无法做到这一点:
Program.sectMap[".init { boot*(.text)}"]= new Program.SectionSpec();
Program.sectMap[".init { boot*(.text)}"].loadAddress = 0xa0000000;
此致、Ari