Thanks for the reply. I think we're going to do something like you suggested. It'll take a little more documentation though.
My bad. I meant to say 500 kBytes. We broke the data into 64 kByte arrays. Actually they're a little bit smaller, because we saved some extra RAM for other data. Here's the commands that I used from the .prm file:
SENSOR_PAGE_00 = NO_INIT 0x200000'G TO 0x20EA5F'G;
SENSOR_PAGE_01 = NO_INIT 0x20EA60'G TO 0x21D4BF'G;
SENSOR_PAGE_02 = NO_INIT 0x21D4C0'G TO 0x22BF1F'G;
SENSOR_PAGE_03 = NO_INIT 0x22BF20'G TO 0x23A97F'G;
SENSOR_PAGE_04 = NO_INIT 0x23A980'G TO 0x2493DF'G;
SENSOR_PAGE_05 = NO_INIT 0x2493E0'G TO 0x257E3F'G;
SENSOR_PAGE_06 = NO_INIT 0x257E40'G TO 0x26689F'G;
SENSOR_PAGE_07 = NO_INIT 0x2668A0'G TO 0x2752FF'G;
SENSOR_PAGE_EXTRA = NO_INIT 0x275300'G TO 0x27CFFF'G;
SENSOR_PAGE_00 = NO_INIT 0x200000'G TO 0x20EA5F'G;
SENSOR_PAGE_01 = NO_INIT 0x20EA60'G TO 0x21D4BF'G;
SENSOR_PAGE_02 = NO_INIT 0x21D4C0'G TO 0x22BF1F'G;
SENSOR_PAGE_03 = NO_INIT 0x22BF20'G TO 0x23A97F'G;
SENSOR_PAGE_04 = NO_INIT 0x23A980'G TO 0x2493DF'G;
SENSOR_PAGE_05 = NO_INIT 0x2493E0'G TO 0x257E3F'G;
SENSOR_PAGE_06 = NO_INIT 0x257E40'G TO 0x26689F'G;
SENSOR_PAGE_07 = NO_INIT 0x2668A0'G TO 0x2752FF'G;
SENSOR_PAGE_EXTRA = NO_INIT 0x275300'G TO 0x27CFFF'G;
SENSOR_RAM DISTRIBUTE_INTO SENSOR_PAGE_00,
SENSOR_PAGE_01,
SENSOR_PAGE_02,
SENSOR_PAGE_03,
SENSOR_PAGE_04,
SENSOR_PAGE_05,
SENSOR_PAGE_06,
SENSOR_PAGE_07;
SENSOR_RAM_EXTRA INTO SENSOR_PAGE_EXTRA;
We set the array size to the sensor page size and used software to switch between pages. We're using global addressing. We'll probably get rid of the SENSOR_RAM_EXTRA and put that into the internal RAM since we'll have plenty of internal RAM.