求助28027的DRAML0 和 PRAML0 地址分配

2019-07-24 16:13发布

我的程序编译出现下述问题:
[Linking...] "C:CCStudio_v3.3C2000cgtoolsincl2000" -@"Debug.lkf"
<Linking>
"E:\dsp\JN_flash_28027\Upgrade28027\Example_Flash28027_API.cmd", line 137: error:
   run placement fails for object ".ebss", size 0x9c9 (page 1).  Available
   ranges:
   DRAML0       size: 0x9c8        unused: 0x9c8        max hole: 0x9c8     
"E:\dsp\JN_flash_28027\Upgrade28027\Example_Flash28027_API.cmd", line 125: error:
   run placement fails for object "ramfuncs", size 0x209 (page 0).  Available
   ranges:
   PRAML0       size: 0x638        unused: 0x103        max hole: 0x103     
error: errors encountered during linking; "./Debug/Example_Flash2802x_API.out"
   not built

>> Compilation failure

Build Complete,
  3 Errors, 0 Warnings, 0 Remarks.
其中地址分配如下:
MEMORY
{
PAGE 0:    /* Program Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */

   PRAML0      : origin = 0x008000, length = 0x000638     /* on-chip RAM block L0 */
   /*PRAML0      : origin = 0x008000, length = 0x000538*/     /* on-chip RAM block L0 */
   OTP         : origin = 0x3D7800, length = 0x000400     /* on-chip OTP */
   /*FLASHD      : origin = 0x3F4000, length = 0x001000*/     /* on-chip FLASH */
   /*FLASHC      : origin = 0x3F5000, length = 0x001000*/     /* on-chip FLASH */
   /*FLASHC      : origin = 0x3F4000, length = 0x002000*/     /* on-chip FLASH */
   FLASHC      : origin = 0x3F4000, length = 0x001C00     /* on-chip FLASH */
   //FLASHA      : origin = 0x3F7000, length = 0x000F80     /* on-chip FLASH */
   FLASHA      : origin = 0x3F6C00, length = 0x001380     /* on-chip FLASH */
   CSM_RSVD    : origin = 0x3F7F80, length = 0x000076     /* Part of FLASHA.  Program with all 0x0000 when CSM is in use. */
   BEGIN       : origin = 0x3F7FF6, length = 0x000002     /* Part of FLASHA.  Used for "boot to Flash" bootloader mode. */
   CSM_PWL_PROG: origin = 0x3F7FF8, length = 0x000008     /* Part of FLASHA.  CSM password locations in FLASHA */
   
   IQTABLES    : origin = 0x3FE000, length = 0x000B50     /* IQ Math Tables in Boot ROM */
   IQTABLES2   : origin = 0x3FEB50, length = 0x00008C     /* IQ Math Tables in Boot ROM */  
   IQTABLES3   : origin = 0x3FEBDC, length = 0x0000AA          /* IQ Math Tables in Boot ROM */

   ROM         : origin = 0x3FF27C, length = 0x000D44     /* Boot ROM */        
   RESET       : origin = 0x3FFFC0, length = 0x000002     /* part of boot ROM  */
   VECTORS     : origin = 0x3FFFC2, length = 0x00003E     /* part of boot ROM  */

PAGE 1 :   /* Data Memory */
           /* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
           /* Registers remain on PAGE1                                                  */

   BOOT_RSVD   : origin = 0x000000, length = 0x000050     /* Part of M0, BOOT rom will use this for stack */  
   RAMM0       : origin = 0x000050, length = 0x0003B0     /* on-chip RAM block M0 */
   RAMM1       : origin = 0x000400, length = 0x000400     /* on-chip RAM block M1 */
   DRAML0      : origin = 0x008638, length = 0x0009c8     /* on-chip RAM block L0 */  
   /*DRAML0      : origin = 0x008538, length = 0x000Ac8*/     /* on-chip RAM block L0 */
   FLASHB      : origin = 0x3F6000, length = 0x001000     /* on-chip FLASH */
}
有以下问题:
1、我查了一下有的说是RAM地址分配有问题,我按照错误提示的长度修改过相应存储空间大小,但改过后还是会反复出现,请大神指点一下问题出在哪里?
2、上面提示错误“DRAML0       size: 0x9c8        unused: 0x9c8        max hole: 0x9c8 ”分配 size: 0x9c8 ,不能用的“unused: 0x9c8”,是不是DRAML0里面都是空的但无法存储数据?
3、上面提示错误 “run placement fails for object "ramfuncs", size 0x209 (page 0).  Available
   ranges:
   PRAML0       size: 0x638        unused: 0x103        max hole: 0x103”        意思是不是说"ramfuncs size 0x209 (page 0)“,但PRAML0剩余空间unused: 0x103,所以存储空间不够?
4、”PRAML0      : origin = 0x008000, length = 0x000638     /* on-chip RAM block L0 */“和”DRAML0      : origin = 0x008638, length = 0x0009c8     /* on-chip RAM block L0 */“也就是RAML0一共就这么大,提示空间不足,还怎么扩展?
5、FLASHA部分出现过类似的问题,也是反复修改、增加存储空间的,修改后还是会出现。
纠结两天了,不知道怎么解决,还请各位前辈能指导一下,非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zhangmangui
1楼-- · 2019-07-24 16:21
先找一个能编译过得吧      对照手册中的内存结构图  对比理解一下  
然后做相关修改
杨琳lin
2楼-- · 2019-07-24 20:12
 精彩回答 2  元偷偷看……

一周热门 更多>