Could somebody give me a hint how to move strings and/or constants from Non-Banked to Banked Flash?
My application contains rather much constant tables and strings, and CW want these in non-banked flash. My ROM_4000-segment if filled with the sections NON_BANKED (interrupt routines and such) and ROM_4000_523 (which seems to contain string constants). The ROM_C000-segment is filled with the sections .init, .startdata, .rodata and .rodata1. Of these the rodata-sections are the large ones and they seem to containt program constants and strings.
Here is an extract from my PRM-file:
PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */ _PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */ STARTUP, /* startup data structures */ ROM_VAR, /* constant variables */ STRINGS, /* string literals */ VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment */ //.ostext, /* eventually OSEK code */ NON_BANKED, /* runtime routines which must not be banked */ //COPY /* copy down information: moved to banked flash */ /* in case you want to use ROM_4000 here as well, make sure that all files (incl. library files) are compiled with the option: -OnB=b */ INTO ROM_C000, ROM_4000; DEFAULT_ROM, COPY /* copy down information: how to initialize variables */ INTO PAGE_FE, PAGE_FC, PAGE_FB, PAGE_FA, PAGE_F9, PAGE_F8, /* use the following ranges only when same module is NOT used for XGATE code */ /* PAGE_E0, PAGE_E1, intentionally not listed: assigned to XGATE */ PAGE_E7, PAGE_E6, PAGE_E5, PAGE_E4, PAGE_E3, PAGE_E2, PAGE_E0_0;
Is there any way to move some of the sections to banked Flash?