CODE
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(entry)
MEMORY
{
//sram (W!RX) : ORIGIN = 0x300000, LENGTH = 80K
sram_1 (W!RX) : ORIGIN = 0x300000, LENGTH = 0x10000
sdram (W!RX) : ORIGIN = 0x20000000, LENGTH = 32M
sdram_nocache (W!RX) : ORIGIN = 0x22000000, LENGTH = 32M
}
SECTIONS
{
.fixed :
{
. = ALIGN(4);
_sfixed = .;
*(.text*)
*(.glue_7)
*(.glue_7t)
*(.rodata*)
*(.data)
. = ALIGN(4);
_efixed = .;
} > sdram
.prerelocate : AT (_efixed)
{
. = ALIGN(4);
_sprerelocate = .;
. = ALIGN(4);
_eprerelocate = .;
}
.postrelocate : AT (_efixed + SIZEOF(.prerelocate))
{
. = ALIGN(4);
_spostrelocate = .;
*(.vectors)
*(.ramfunc)
. = ALIGN(4);
_epostrelocate = .;
} > sram_1
.bss (NOLOAD) :
{
_szero = .;
*(.bss)
_ezero = .;
} > sdram
.nocache (NOLOAD) :
{
*(.nocache)
} > sdram_nocache
_sstack = 0x22000000;
}
end = .;
Буферы объявляю с __attribute__((section(".nocache"))).
Верхние 16k sram использую под таблицу трансляции, поэтому доступную sram_1 ограничил до 64k.
Речь именно об отладке, само по себе оно работает с этой секцией..