TI中文支持网
TI专业的中文技术问题搜集分享网站

求关于.cfg和.cmd文件

c6678,bios_6_33_06_50,CCS 5.3.0.00090

一直搞不清.cfg和.cmd文件。看都看不十分明白。

1 一个工程什么时候需要.cfg文件 ,什么时候需要.cmd文件呢?

2 有没有关于能让我看懂并能自己编写这两个文件的文档或资料呢?(求啊,,,,)

3 我在一个已有的demo里加了一段代码,里面有malloc操作,但总是分配失败,这个工程里只带了一个.cmd文件,我就在MEMORY中加了个DDR3,并把len设的很大,然后把所有sections都放在DDR3里,但是malloc仍然失败。我就不知道怎么办了

 

Adam Yao94020:

1. 所有在DSP上运行的工程都需要cmd文件,这个文件负责定义memory region,并将用户的代码数据section映射到这些region中去,

只有使用了sys-biso的工程才需要cfg文件。

2. 可以参考6679 PDK中的例子,PDK里面有很多参考工程。

3. 在cmd中加上-heap  0x80000,malloc从系统堆上申请内存,这条指令的作用是在用户memory上开一个系统堆。

ruijie yang:

回复 Adam Yao94020:

谢谢Adam!

1.原cmd中有-heap 8192,我试过改大,比如0x80000,但是编译就报错了:

    errors encountered during linking; 

    run placement fails for object ".sysmem"

而cmd中有

     .sysmem         >   L2_MEM

    且 L2_MEM:    origin = 0x008011FF   length = 0x0007ee00

但是如果我把值改稍小一点,比如 -heap 40000就又可以编过(什么原因),但malloc依旧失败。

2.我输出了一下前面一个成功malloc的地址,发现是0x8x…,可我定义的所有的sections的origin都是0x00x…,它到底给分到哪里去了?

3.pdk我跑过好几个例子了,对cfg和cmd还是茫然啊

 

 

Andy Yin1:

回复 ruijie yang:

你的是sysBios工程么?如果是的话不能通过修改cmd生效,需要修改cfg文件。关于cmd文件请参考spru187 compile user guide,关于cfg文件请参考sysBios user guide。

ruijie yang:

回复 Andy Yin1:

谢谢Andy!

1 不是sysbios,是个ctoolslib的工程,DSPTrace_tietb_edma_6678,我在这个工程里加了一个算法,想对这个算法做trace,被malloc failed卡住了,试着修改cmd也不行。有什么建议吗

2 我又试着把DSPTrace_tietb_edma_6678里的代码加到image processing工程里做trace,能跑,但是跑到一半console会输出一串什么地址,然后resource conflict exception或是fetch packet exception或是opcode exception,然后terminate。不晓得这些exception该怎么处理…

谢谢推荐的文档,我先看看

lizhi hou:

回复 Adam Yao94020:

动态内存的申请都是在堆上生成的

lizhi hou:

回复 ruijie yang:

1.虽然可申请内存区域很大,但是在malloc申请时,内存中是否有足够连续的内存供申请,不确定,所以可能会申请失败。

 

ruijie yang:

回复 lizhi hou:

谢谢lizhi!

那这么说,只将heap size设置的足够大也不能保证malloc会成功喽?

那我要怎么做才能保证malloc能成功呢?不会无法确定吧?-__-

ruijie yang:

回复 lizhi hou:

谢谢lizhi!

我曾试过在MEMORY中定义DDR,比如,DDR3 (RWX) : org = 0x80000000, len = 0x10000000,然后将SECTIONS中几乎所有的sections都 >   DDR3, MEMORY前有-heap 8192,但分配没有成功

malloc不是从堆上分吗,cmd中定义堆的就是-heap (size),而要我想问上面那样做是使heap放在DDR3中了吗?是在DDR3中分了8192做heap吗?不是的话,那怎么放在DDR上呢?

Ted cooper:

回复 ruijie yang:

不行就别动态分配了,直接自定义一段内存空间用于这个就好了,保证堆栈和代码都不会占据这段内存,只用于你需要的数据存储。

赞(0)
未经允许不得转载:TI中文支持网 » 求关于.cfg和.cmd文件
分享到: 更多 (0)