TI论坛
直播中

赵羽

7年用户 205经验值
私信 关注
[问答]

关于CCS6 编译生成Map文件问题

芯片6713B,用CCS6编译程序生成的map文件查看内存占用情况,显示IRAM占用大小为0x000311a8(从0x00000400开始),但是发现在地址0x000315c7(>0x000311a8+0x00000400)后还有一段内存被使用,如下图所示。怎么会出现这种情况呢?


CMD 文件中.const段就是放在IRAM内。

回帖(6)

余少虹

2018-7-31 10:08:17
请问你的cmd文件是怎么写的?
举报

赵羽

2018-7-31 10:24:06
引用: vuywsdfwf 发表于 2018-7-31 10:08
请问你的cmd文件是怎么写的?

CMD文件:
MEMORY[   /* IRAM     o = 0x00000000  l = 0x00040000   192kB + 64kB - Internal RAM */    BOOT_RAM o = 0x00000000  l = 0x00000400  /* 192kB - Internal RAM */    IRAM     o = 0x00000400  l = 0x0003FC00  /* 192kB + 64kB  - Internal RAM */   /* L2RAM    o = 0x00030000  l = 0x00010000   64kB - Internal RAM/CACHE */    EMIFCE0  o = 0x80000000  l = 0x10000000  /* SDRAM in 6713 DSK */    EXFLASHSYN o = 0x901C3880  l = 0x00000780     EXFLASHPN  o = 0x901C4000  l = 0x0003c000      EMIFCE2  o = 0xA0000000  l = 0x10000000  /* Daughterboard in 6713 DSK */    EMIFCE3  o = 0xB0000000  l = 0x10000000  /* Daughterboard in 6713 DSK */]SECTIONS[        .boot_load      >  BOOT_RAM    .text          >  IRAM    .stack         >  IRAM    .bss           >  IRAM    .cio           >  IRAM    .const         >  IRAM    .data          >  IRAM    .switch        >  IRAM    .sysmem        >  IRAM    .far           >  IRAM    .args          >  IRAM    .ppinfo        >  IRAM    .ppdata        >  IRAM      /* COFF sections */    .pinit         >  IRAM    .cinit         >  IRAM      /* EABI sections */    .binit         >  IRAM    .init_array    >  IRAM    .neardata      >  IRAM    .fardata       >  IRAM    .rodata        >  IRAM    .c6xabi.exidx  >  IRAM    .c6xabi.extab  >  IRAM    /* Revbuffer */        .Rev_bufferinit  > IRAM         /* Flash 常量存储空间 */    .my_flash_sys_sync_sect >  EXFLASHSYN    .my_flash_PN_sect                 >  EXFLASHPN]
举报

余少虹

2018-7-31 10:43:14
引用: 送春风雨露 发表于 2018-7-31 10:24
CMD文件:
MEMORY[   /* IRAM     o = 0x00000000  l = 0x00040000   192kB + 64kB - Internal RAM */    BOOT_RAM o = 0x00000000  l = 0x00000400  /* 192kB - Internal RAM */    IRAM     o = 0x00000400  l = 0x0003FC00  /* 192kB + 64kB  - Internal RAM */   /* L2RAM    o = 0x00030000  l = 0x00010000   64kB -  ...

IRAM占用大小为0x000311a8,并不表示一定是到0x400+0x000311a8这个地址为止,在0x400~0x40000(0x400+0x3FC00)这段地址范围内都可以放数据,.const段放到0x000315c7没问题。
举报

赵羽

2018-7-31 10:52:25
引用: vuywsdfwf 发表于 2018-7-31 10:43
IRAM占用大小为0x000311a8,并不表示一定是到0x400+0x000311a8这个地址为止,在0x400~0x40000(0x400+0x3FC00)这段地址范围内都可以放数据,.const段放到0x000315c7没问题。

我一直以为是占用大小就是到这个地址为止,之前还一直靠这个长度烧写Flash,最近才发现程序烧写后不对啦,看来以后要逻辑要改了,谢谢啦
举报

更多回帖

发帖
×
20
完善资料,
赚取积分