LPC1768 IAR环境下使用完整64K内存的方法_整理

https://blog.****.net/tpoem/article/details/98372896

原文有一点错误

这个芯片是NXP公司出的很经典的一款Cortex-M3芯片了

虽然已经过了很多年了,但是依然还有很多地方在用着

这个芯片有一个很不方便的地方

它的64K内存不是连续的!

USB和片上以太网MAC各用了16KB SRAM作为缓冲区

 LPC1768 IAR环境下使用完整64K内存的方法_整理

假如不使用USB或者不希望用这个宝贵的SRAM做MAC的缓冲区,这个32KB内存默认情况下都是没办法用的

网上大多都是KEIL环境下的修改教程

我司用的是IAR环境,所以我自己摸索出了一个办法可以使用那32K SRAM做普通的内存

 

首先,IAR工程设置选Cortex-M3

LPC1768 IAR环境下使用完整64K内存的方法_整理

 然后链接器这里修改成这样

LPC1768 IAR环境下使用完整64K内存的方法_整理

 

然后勾上Override default,Edit...

然后进去看到这样的页面,接下来的重点就是利用这个模板修改出64K RAM的LPC1768

模板的路径:

LPC1768 IAR环境下使用完整64K内存的方法_整理

LPC1768 IAR环境下使用完整64K内存的方法_整理

 

堆栈就看项目情况设置 

 LPC1768 IAR环境下使用完整64K内存的方法_整理

LPC1768 IAR环境下使用完整64K内存的方法_整理

 然后应该会要你保存这份新的链接文件

然后回到这里把它改回LPC1768

LPC1768 IAR环境下使用完整64K内存的方法_整理

然后编译链接调试都可以正常执行,可以用满所有内存

 

定义后:

int val_addr @0x2007C000;

编译查看map文件

val_addr                0x2007'c000    0x4  Data  Gb  main.o [1]

成功了!