eclipse下定义数据到外部ram空间,stlink下载出错。

2019-07-20 14:44发布

我在做外部sdram试验的时候,使用eclipse下编译的程序,定义数组到外部sdram空间,主要的定义过程如下(参考的原始链接https://mcuoneclipse.com/2012/11 ... addresses-with-gcc/):
1。在c文件中作如下设置
[mw_shl_code=applescript,true]uint16_t __attribute__((section(".sdram_section"))) ltdc_lcd_framebuf[1280][800];[/mw_shl_code]
2。在链接文件中作如下设置
[mw_shl_code=applescript,true]MEMORY
{
FLASH (rx)      : ORIGIN = 0x00200000, LENGTH = 2048K
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 512K
SDRAM (xrw)      : ORIGIN = 0xC0000000, LENGTH = 32M
}
.sdram_block 0xC0000000 :
  {
  *(.sdram_section);
  } > SDRAM[/mw_shl_code]

0xc0000000地址开始的空间。程序可以编译通过。

通过stlink打开如下所示
Image 7.png
可以看到0xc0000000地址开始的空间存放的有数据,
所以我下载的时候就出现如下错误提示
Image 3.png
查看stlink utility的手册
Image 8.png
我尝试自己编译一个external loader。但是现在还没有编译成功。
但是我在IAR下定义数据到地址0xc0000000,打开生成的hex文件
Image 6.png
很明显,这些数据都在rom区,所以可以正常下载。

这是什么怎么回事呢 ???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。