【CCS】关于CCS12 编译报错:error #10099-D:program will not fit into available memory解决办法
最近在做DSP TMS320F28335 为MCU的大作业,然后是在CCS进行编译烧录的。但是如果随着变量增多,然后还需要加入一些图片元素什么的 就会出现RAM不足的问题
我这边查阅了很多相关的资料,找到一篇感觉比较好的blog 记录一下
blog
下面给一下我看了这篇blog 解决的方案 亲测有效
比如,如果说RAML1 不足,可以点开Memory Allocation,看看自己的每个部分占用的大小 我这边就是.text不足,这个位于RAML1
原来的配置文件 主要内容是这样的
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */ RAMM0 : origin = 0x000050, length = 0x0003B0RAML0 : origin = 0x008000, length = 0x001000 RAML1 : origin = 0x009000, length = 0x001000 RAML2 : origin = 0x00A000, length = 0x001000 RAML3 : origin = 0x00B000, length = 0x001000 ZONE6A : origin = 0x100000, length = 0x00FC00 /* XINTF zone 6 - program space */ CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
这个时候,从Memory Allocation进去,可以看到RAML1还有富余的空间,于是可以把RAML0长度 分配一部分给RAML1
分配的原则是:保证地址是连续的
于是 经过修改过后,变成这样
BEGIN : origin = 0x000000, length = 0x000002 /* Boot to M0 will go here */BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */ RAMM0 : origin = 0x000050, length = 0x0003B0RAML0 : origin = 0x008000, length =0x000F00RAML1 : origin = 0x008F00, length =0x001F00RAML2 : origin = 0x00AE00, length = 0x000200RAML3 : origin = 0x00B000, length = 0x001000
可以看到RAMM00 RAML1 总体长度不变 但是分配内存的大小变化了
ok 完结~~