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.
工具/软件:Code Composer Studio
是否可以安全地忽略出现的.stack和.esysmem 1.021万-D警告? 即使它们在*.cmd文件中定义。
警告#1.021万-D:创建默认大小为0x400的".stack"部分;使用-stack选项更改默认大小 警告#1.021万-D:创建默认大小为0x400的".esysme"部分;使用-heap选项更改默认大小
正确的内存大小会显示在Memory Allocation (内存分配)视图中。
如果是,为什么这些警告在正确定义时仍然存在?
亲切,
Graham
我不知道这是怎么发生的。 请将链接器命令文件附加到下一篇文章。 因此文件不会被拒绝,请将扩展名".txt"添加到其中。 还显示整个链接程序命令调用以及随后的所有诊断。 从控制台视图而不是问题视图复制和粘贴。
谢谢,此致,
-George
谢谢George。 已发布*cmd文件。 以下是链接程序命令调用:
正在构建目标:program.out
调用:C2000 Linker
"/Applications/ti/Ccssv7/tools/compiler/ti-CGT-C2000_c2000_c2000.sts/bin/cl2000"<xmt-block0>2000 17.62000. 17.6</xmt-block>2000 -v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tc2c_support=tc200_verbe_support=tc3_vm=t_support=tm/verbos-f0/ 17.6 支持-f0/dip_t_vm_t_support=t_tm/dip-f0/支持-dip_cm-f0/dip_dip_dip-dip-dip_dip_dip-f0/dip-dip-dip-dip_dip-f0/dip-dip-dip-dip-dip-dip-dip_dip-f0/dip-dip-dip-dip-dip-dip-dip-dip_dip-dip-dip-dip-dip-dip-dip_dip-f0/ 17.6 支持
链接>
警告#1.021万-D:创建默认大小为0x400的".stack"部分;使用-stack选项更改默认大小
警告#1.021万-D:创建默认大小为0x400的".esysmem"部分;使用-heap选项更改默认大小
已完成构建目标:program.out
****构建已完成****
问题是您从不使用选项-stack或-heap。 链接程序调用中不显示任何选项。 附加链接器命令文件F2837xD_RAM_CPU1.txt。 它中没有任何选项。 链接程序调用始终不会引用此文件。 它指的是以下两个链接程序命令文件:
[报价用户="Graham Reitz29"]-LC_Motive _2837xD_RAM_CPU1.cmd -lF2837xD_Headers_nonBIOS_CPU1.cmd [/报价]
我没有第一个文件,但它几乎肯定不包含-stack或-heap。 我从 controlSUITE的安装中查看了F2837xD_Headers_nonBIOS_CPU1.cmd,并验证它没有-stack或-heap。
如果您明智地使用了选项--warn_sections,避免这些诊断的唯一方法就是将选项-stack和-heap添加到链接程序调用中。
谢谢,此致,
-George
以前,我尝试手动 删除一些信息,但在链接程序调用中遗漏了一些项目。 这就是文件名不匹配的原因。 肯定会使用*.cmd文件。 该信息已发布到该回复中,未被改动。
附加了Memory Allocation (内存分配)视图的图像。 很明显,链接程序有选择地忽略了.stack和.esysmem部分。 应该为它们分配8192 字节。 而是只有4906 (0x400),默认值可用。 但有趣的是,它被分配到RAM的正确区域。 某些功能无法正常工作。
此外,如果添加了-stack和-linker选项,它们将覆盖*.cmd文件中的内容,对吗? 这是不可取的。
调用:C2000 Linker
"/Applications/ti/Ccssv7/tools/compiler/ti-CGT-C2000_C2000_c2000.sts/bin/cl2000"<xmt-block0>2000 17.62000. 17.6</xmt-block>2000 -v28 -ml -mt --CLA_support=claus1 --float_support=fpu32 --tmu_support=tc2000_lib_support=tsm_tm_support=tmut0 -sm_support=tc0 -vu_mccm/dip_support=t_support=tcps-dip_dip_dip_dip_dip-dip/dip-dip-dip-dip_dip-dip-dip/dip-dip-dip_dip-dip-dip_dip-f0/dip-dip-dip-dip_j-dip-dip-dip_dip-f0/ip-dip-dip-dip-dip-dip-dip_j-dip/ip-dip-dip-dip-dip-dip_dip-dip-dip 17.6 17.6
链接>
警告#1.021万-D:创建默认大小为0x400的".stack"部分;使用-stack选项更改默认大小
警告#1.021万-D:创建默认大小为0x400的".esysmem"部分;使用-heap选项更改默认大小
已完成建造目标:c-Motive。out
****构建已完成****
亲切,
Graham
e2e.ti.com/.../5531.C_5F00_Motive_5F00_2837xD_5F00_RAM_5F00_CPU1.txt</s>2837
Graham Reitz29 说:此外,如果添加了-stack和-linker选项,它们将覆盖*.cmd文件中的内容,正确吗?[/QUOT]
不正确。 此行来自C_Motive _2837xD_RAM_CPU1.cmd ...
堆栈 :> RAMGS13toGS14,第= 1页
...说明堆栈的走向。 但这并不表示堆栈有多大。 这就是选项-stack的作用。 这与堆类似。
请添加相应的-stack和-heap选项。
谢谢,此致,
-George
我相信在上一个线程中,其中一位主持人回答了我的-stack和-heap行为错误。 [/引述]
我认为,说他没有考虑一个可能的案件,是比较准确的。 他所想到的情况是,如果在项目设置和链接程序命令文件中指定-stack选项,则链接程序命令文件中的选项优先。 更具体一点:链接器看到的最后一个是使用的那个。 除非采取了不寻常的步骤,否则CCS会将链接程序命令文件放置在链接程序调用的末尾或接近末尾。 未考虑的情况:根本未指定-stack。
谢谢,此致,
-George