LPC1768 MCUXpresso IDE环境下使用完整64K内存的方法

MCUXpresso IDE是NXP公司免费提供的一款针对自家平台的IDE

简单来说就是 Eclipses 外加GCC编译器和自家芯片平台的IDE

在这种平台下,也是默认情况下只能用32KB的SRAM,想用满64KB需要额外修改链接文件

以这个链接文件.ld文件的一部分为例

简单来说,就是一个萝卜一个坑,移动了就要把原来除外,不要漏

bss区,data区都要做

具体移动哪一个,看.map文件,哪个大移动哪一个,合理分配均衡就好

    .data_RAM2 : ALIGN(4)
    {
        FILL(0xff)
        PROVIDE(__start_data_RAM2 = .) ;
        *(.ramfunc.$RAM2)
        *(.ramfunc.$RamAHB32)/* emac.o memp.o等是你希望放到这个内存段的.data里 */
		*emac.o(.data*)
		*memp.o(.data*)
		*lpc17xx_can.o(.data*)
        *(.data.$RAM2*)
        *(.data.$RamAHB32*)
        . = ALIGN(4) ;
        PROVIDE(__end_data_RAM2 = .) ;
     } > RamAHB32 AT>MFlash512
    /* MAIN DATA SECTION */
    .uninit_RESERVED : ALIGN(4)
    {
        KEEP(*(.bss.$RESERVED*))
        . = ALIGN(4) ;
        _end_uninit_RESERVED = .;
    } > RamLoc32

    /* Main DATA section (RamLoc32) */
    .data : ALIGN(4)
    {
       FILL(0xff)
       _data = . ;
       *(vtable)
       *(.ramfunc*)
       /* emac.o memp.o等是你刚刚放到别的内存段.data里,这里就需要将它们除外 */
       *(EXCLUDE_FILE (*emac.o *memp.o *lpc17xx_can.o).data*)
       . = ALIGN(4) ;
       _edata = . ;
    } > RamLoc32 AT>MFlash512

    /* BSS section for RamAHB32 */
    .bss_RAM2 : ALIGN(4)
    {
       PROVIDE(__start_bss_RAM2 = .) ;
/* emac.o memp.o等是你希望放到这个内存段的.bss里 
	   	*emac.o(.bss*)
		*memp.o(.bss*)
		*lpc17xx_can.o(.bss*)
       *(.bss.$RAM2*)
       *(.bss.$RamAHB32*)
       . = ALIGN (. != 0 ? 4 : 1) ; /* avoid empty segment */
       PROVIDE(__end_bss_RAM2 = .) ;
    } > RamAHB32

    /* MAIN BSS SECTION */
    .bss : ALIGN(4)
    {
        _bss = .;
/* emac.o memp.o等是你刚刚放到别的内存段的.bss里 ,这里要将他们除外*/
        *(EXCLUDE_FILE (*emac.o *memp.o *lpc17xx_can.o).bss*)
        *(COMMON)
        . = ALIGN(4) ;
        _ebss = .;
        PROVIDE(end = .);
    } > RamLoc32

    /* NOINIT section for RamAHB32 */
    .noinit_RAM2 (NOLOAD) : ALIGN(4)
    {
       *(.noinit.$RAM2*)
       *(.noinit.$RamAHB32*)
       . = ALIGN(4) ;
    } > RamAHB32 

    /* DEFAULT NOINIT SECTION */
    .noinit (NOLOAD): ALIGN(4)
    {
        _noinit = .;
        *(.noinit*) 
         . = ALIGN(4) ;
        _end_noinit = .;
    } > RamLoc32

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值