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.

关于.cmd文件的问题请教



大家好:

       我想请问下link.cmd什么怎么自动生成的啊?在link.cmd中,有:

       MEMORY

      {
      L2SRAM (RWX) : org = 0x800000, len = 0x80000
      MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000
      DDR3 : org = 0x80000000, len = 0x20000000
      }

      如果我想要新加段就可以直接在MEMORY里面加吗?还是需要在其他什么地方配置,然后自动生成?

      另外,从Debug窗口里RTSC TOOLS->platform->Edit里面的custom memory和以上的memory有什么关系?

     谢谢!

  • 我的了解:

    1.linker.cmd(link.cmd?)是根据custom memory和cfg文件共同的配置决定,是自动生成的。如果cfg文件不使用Program.sectMap,那么code/data/stack会默认按照RTSC TOOLS->platform->Edit中的配置

    2.如果自己想添加有几种方法:一是自己新建cmd文件来增加段,但是不能增加已存在段的定义。而是直接在平台中增加。【在平台中增加需要clean project才能生效】。还有一种就是使用Program.sectionExclude 或 Program.sectionTemplate 或Program.linkTemplate,这种我没试过 

  • qiang yu1,

            您好,是linker.cmd,刚打错了,不好意思哈。

            在RTSC TOOLS->platform->Edit中,有如下窗口:

            

           这个窗口里的vlfft是什么意思呢?一定是使用的vlfft?

           谢谢您!

           

  • 您好

    如果选择的是RTSC TOOLS->platform->Edit那就是编辑已有的Platform Package。

    RTSC TOOLS->platform->New那就是新建自己需要的Platform Package。

    Platform Package Repository表示存放的目录。

    看您的需求是什么,您是在用vlfft这个例子吧

  • 您好

        是表示工程存放的目录吗?我在使用一个demo,但这个demo不是vlfft。打开RTSC TOOLS->platform->Edit的界面就会有这样的,如下图:

        

     可能是他们原来用过VLFFT吧

       

  • 那您直接可以新建一个,根据自己的需求。最后在工程的Properties里面的RTSC选项卡中选择你的platform。

    目录是值Platform Package存放目录,与工程目录无关

  • qiang yu

            您好,就像您最开始说的,custom memory和cfg文件共同配置决定linker.cmd,我将原来的RTSC TOOLS->platform->Edit改过来了,如下图:

           

          其中的DDR_PRIVATE是新增加的段,.cfg中没有使用Program.sectMap(),但最后在生成的linker.cmd中并没有我想增加的段,如下图:

          

           请问为什么会这样呢?

  • 您好

    1.首先确认在RTSC选项卡中是否选择了刚才更改后的patform。

    2.如果确认无误,尝试clean project一下。

  • qiang yu

       您好,问题得到了解决,果然还是RTSC选型卡中的platform没有及时更改造成的错误。

       谢谢您