完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
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仍然失败。我就不知道怎么办了 |
|
相关推荐
11个回答
|
|
1. 所有在DSP上运行的工程都需要cmd文件,这个文件负责定义memory region,并将用户的代码数据section映射到这些region中去,
只有使用了sys-biso的工程才需要cfg文件。 2. 可以参考6679 PDK中的例子,PDK里面有很多参考工程。 3. 在cmd中加上-heap 0x80000,malloc从系统堆上申请内存,这条指令的作用是在用户memory上开一个系统堆。 |
|
|
|
cmh9 发表于 2018-6-21 18:34 谢谢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还是茫然啊 |
|
|
|
raylue 发表于 2018-6-21 18:39 你的是sysBios工程么?如果是的话不能通过修改cmd生效,需要修改cfg文件。关于cmd文件请参考spru187 compile user guide,关于cfg文件请参考sysBios user guide。 |
|
|
|
zbb9612 发表于 2018-6-21 18:57 谢谢Andy! 1 不是sy***ios,是个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该怎么处理... 谢谢推荐的文档,我先看看 |
|
|
|
cmh9 发表于 2018-6-21 18:34 动态内存的申请都是在堆上生成的 |
|
|
|
raylue 发表于 2018-6-21 18:39 1.虽然可申请内存区域很大,但是在malloc申请时,内存中是否有足够连续的内存供申请,不确定,所以可能会申请失败。 |
|
|
|
谢谢lizhi! 那这么说,只将heap size设置的足够大也不能保证malloc会成功喽? 那我要怎么做才能保证malloc能成功呢?不会无法确定吧?-__- |
|
|
|
raylue 发表于 2018-6-21 19:42 可以你尝试将你所需要的区域,放置在DDR,或者msmc上,当然DDR要初始化 |
|
|
|
谢谢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上呢? |
|
|
|
raylue 发表于 2018-6-21 20:12 不行就别动态分配了,直接自定义一段内存空间用于这个就好了,保证堆栈和代码都不会占据这段内存,只用于你需要的数据存储。 |
|
|
|
malloc动态分配的内存是在堆上的,那么可以通过修改CMD文件来设置堆内存的大小的吧
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
387 浏览 2 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
580 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1034 浏览 1 评论
691 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
504 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
139浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
108浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
115浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
112浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
146浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 11:06 , Processed in 0.930358 second(s), Total 66, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号