我在做外部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打开如下所示
可以看到0xc0000000地址开始的空间存放的有数据,
所以我下载的时候就出现如下错误提示
查看stlink utility的手册
我尝试自己编译一个external loader。但是现在还没有编译成功。
但是我在IAR下定义数据到地址0xc0000000,打开生成的hex文件
很明显,这些数据都在rom区,所以可以正常下载。
这是什么怎么回事呢 ???
一周热门 更多>