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

6678 更新common文件时,cmd文件出错

大家好

TMS320C6678板子,将之前做的工程的common文件更新成官网最新版时遇到如下错误

"../C6678.cmd", line 36: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".sysmem" size 0x2000 . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54"../C6678.cmd", line 46: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".stack" size 0x1000 . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54

>> Compilation failure
"../C6678.cmd", line 33: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".far" size 0x99c . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54"../C6678.cmd", line 39: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".fardata" size 0x692 . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54"../C6678.cmd", line 25: error #10099-D: program will not fit into available memory. placement with alignment fails for section ".csl_vect" size 0x200 . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54"../C6678.cmd", line 37: error #10099-D: program will not fit into available memory. run placement with alignment fails for section ".cio" size 0x120 . Available memory ranges:
LL2MEM size: 0x7fc00 unused: 0x5c max hole: 0x54

均与LL2有关,请问

1.什么原因造成的

2.应该怎样修改,

谢谢

.cmd配置

-c
-heap 0x2000
-stack 0x1000

MEMORY
{
VECTORS: origin=0x00800000 length=0x00000400
// little_boot(RWX): origin = 0x800400 length = 0x400
//csl_vect: origin=0x00800800 length=0x00000200
LL2MEM: origin=0x00800400 length=0x0007FC00
MSMCRAM: origin=0x0C000000 length=0x00300000
MSMDATA:origin=0x0C300000 length=0x00100000
DDR3RAM: origin=0x80000000 length=0x10000000
DDR32RAM: origin=0x90000000 length=0x10000000

}

SECTIONS
{
//.kernel:{
// *.obj(.text:optimized) {SIZE(_kernel_size)}
//}
vecs > VECTORS
.csl_vect >LL2MEM
.text > LL2MEM
.data > LL2MEM
.fasttext > LL2MEM
// .cinit > LL2MEM
.cinit > MSMDATA
.bss > LL2MEM
.const > LL2MEM
.far > LL2MEM
.switch > MSMDATA
//.sysmem > LL2MEM
.sysmem > LL2MEM
.cio > LL2MEM
.heap > LL2MEM
.fardata > LL2MEM
.neardata > LL2MEM
.rodata > LL2MEM
.INRAM > LL2MEM
.MSRAM > MSMCRAM
.EXRAM > DDR3RAM
.2EXRAM > DDR32RAM
.stack > LL2MEM
}

Tidder Yang:

回复 Allen35065:

恩,谢谢,错误已经解决了

查了下这些段的含义

.cinit    存放程序中的变量初值和常量

.const      存放程序中的字符常量、浮点常量和用const声明的常量

.switch      存放程序中switch语句的跳转地址表

.text     存放程序代码

.bss     为程序中的全局和静态变量保留存储空间

.far     为程序中用far声明的全局和静态变量保留空间

.stack     为程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果

.sysmem       用于程序中的malloc 、calloc 、和realoc 函数动态分配存储空间

还想问下,.cio  指的是什么,

今天调试的时候,虽然build没出错,但在板子上跑的时候会卡在等待EDMA传输结束的语句上(数据可以传输过去),这是之前用旧的common文件没出现过的,

TI有没有官方的文档,说明这些段应该怎样分配合适(LL2 还是MSM,或者其他),这个涉及哪方面的知识,

谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 6678 更新common文件时,cmd文件出错
分享到: 更多 (0)