Доброго времени суток!
Для того, чтобы использовать все адресное пространство внешней памяти в диапазоне 0x000 - 0x7FFFF можно воспользоваться переполнением старших разрядов адреса. В этом случае внешняя память будет доступна через 3 диапазона адресов:
1) ячейки внешней памяти 0x00 - 0x5FFF будут доступны по адресам микроконтроллера 0x200000 - 0x205FFF (регион памяти EXT1)
2) ячейки внешней памяти 0x6000 - 0xFFFF будут доступны по адресам микроконтроллера 0x6000 - 0xFFFF (регион памяти CMD0)
3) ячейки внешней памяти 0x10000 - 0x7FFFF будут доступны по адресам микроконтроллера 0x210000 - 0x27FFFF (регион памяти EXT2)
Тогда регионы памяти файла .ldf буду следующие:
MEMORY
{
RAM0 { TYPE(RW) START(0x00000060) END(0x00003FFF) } // RAM0 (16 Kbyte)
PSRAM { TYPE(RWX) START(0x00005000) END(0x00005FFB) } // PSRAM, except for last 4 bytes (4 Kbyte, 0x5FFC-0x5FFF). Stack cannot be placed.
PSRAMF { TYPE(RW) START(0x00005FFC) END(0x00005FFF) } // PSRAM last 4 bytes (0x5FFC-0x5FFF). Executable code or stack cannot be placed.
CMD0 { TYPE(RWX) START(0x00006000) END(0x0000FFFF) } // External memory (24 Kbyte, alias of 0x206000 - 0x20FFFF)
RAM1 { TYPE(RW) START(0x00010000) END(0x00013FFF) } // RAM1 (16 Kbyte really)
EXT1 { TYPE(RWX) START(0x00200000) END(0x00205FFF) } // External memory (24 Kbyte, after 0x200000)
EXT2 { TYPE(RWX) START(0x00210000) END(0x0027FFFF) } // External memory (448 Kbyte, after 0x210000)
}