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

程序过大,内部RAM不够用怎么办?

我用CCS3.3编写的程序,编译没有问题,连接的时候报错:

error: can't allocate .gblinit, size 00000029 (page 0) in L03SARAM (avail:00000020)

上网查了,大概原因是程序过大而RAM空间不足。.gblinit是DSP/BIOS Init Tables。

现在的问题是程序为什么会占用BIOS的空间?如果程序过大如何缩减程序的容量?从哪里下手?比如哪些变量类型或者函数会占用空间比较大。

注:硬件已经设计好,所以不可能增加外部RAM。最好在不修改CMD文件的前提下解决问题。

囧:

回复 Eric6:

子函数设置多了,一个会占用.stack段,还会占用.text段和.ebss段,有两个都是在RAM里的,所以会占用RAM,其实最好的方法是用宏的模式去写函数,这样就只会占用FLASH,实时性要求高的子函数可以copy到RAM去

我用CCS3.3编写的程序,编译没有问题,连接的时候报错:

error: can't allocate .gblinit, size 00000029 (page 0) in L03SARAM (avail:00000020)

上网查了,大概原因是程序过大而RAM空间不足。.gblinit是DSP/BIOS Init Tables。

现在的问题是程序为什么会占用BIOS的空间?如果程序过大如何缩减程序的容量?从哪里下手?比如哪些变量类型或者函数会占用空间比较大。

注:硬件已经设计好,所以不可能增加外部RAM。最好在不修改CMD文件的前提下解决问题。

mangui zhang:

可以使用外扩的SDRAM   或者也可以将一些变量化为常量处理 

存入到flash中

我用CCS3.3编写的程序,编译没有问题,连接的时候报错:

error: can't allocate .gblinit, size 00000029 (page 0) in L03SARAM (avail:00000020)

上网查了,大概原因是程序过大而RAM空间不足。.gblinit是DSP/BIOS Init Tables。

现在的问题是程序为什么会占用BIOS的空间?如果程序过大如何缩减程序的容量?从哪里下手?比如哪些变量类型或者函数会占用空间比较大。

注:硬件已经设计好,所以不可能增加外部RAM。最好在不修改CMD文件的前提下解决问题。

mangui zhang:

可以使用外扩SDRAM     也可以修改程序将一些大的变量等相常量转换

让其存入flash中

赞(0)
未经允许不得转载:TI中文支持网 » 程序过大,内部RAM不够用怎么办?
分享到: 更多 (0)