想请问下TI的工程师,因为使用的是sys/bios系统中所带的platform文件,定义了每个段的存放位置,我在使用的过程中(IPC包)修改了里面的linkcmd.xdt,能重新将某个内存段放到其他位置例如改写.tls_tp: load >> L2SRAM将他改为DDR3是没有问题的。
现在我想不通过修改这个linkcmd.xdt去重新放置.tls_tp这个段,我尝试过两种方法都没有成功
1.新建mytest.cmd,.tls_tp > DDR3 并且加到我的工程中去。
2.通过修改cfg文件,使用Program.sectMap[".tls_tp"].loadSegment = "DDR3";
上述两种方法并没有成功,我怀疑是链接顺序的问题,导致最后还是被linkcmd.xdt所覆盖,但是我找不到所谓的顺序是在哪里定义。
Shine:
请问在程序中是否有用#pragma DATA_SECTION或者#pragma CODE_SECTION (symbol , "section name ")来定义.tls_tp?
Minister:
回复 Shine:
这一个是有的,生成的debug的cmd文件还是将他指向L2SRAM里,所以最终map文件里面也能看到.tls_tp在L2SRAM里面,就是覆盖不了
Shine:
回复 Minister:
在自定义的cmd文件添加应该可以的,自定义的cmd文件不会被sys/bios自动生成的cmd文件覆盖。自定义的cmd文件MEMORY不要和sys/bios自动生成的cmd文件的MEMORY重复定义。请看sys/bios文档关于如何自定义cmd文件。
7.3.3 Providing a Supplemental Linker Command File
www.ti.com/…/spruex3u.pdf