Hi Nick et al.!
As far as I know, without using '-mlarge' I can not address far data.
E.g. the following code, with data placed into section ".upper.bss", which is per default located in HIFRAM on an MSP430FR5969:
volatile uint16_t __attribute__ ((section (".upper.bss"))) y[1]; int main(void) { y[0]++; ...
The linker generates the following warning: "relocation truncated to fit: R_MSP430X_ABS16 against symbol `y' defined in .upper.bss" when I don't add the option '-mlarge'.
The large data model does increase the code quite a bit (approx 25% in one of my projects). For example I could only place data objects into memory beyond 64k (far memory) and code would reside below 64k (near memory).
What I'm missing is a 'medium' memory model very much like the medium memory model of the Intel cpu's, where I'd use the 'far' qualifier on data which resided in far memory.
Is there anything like a 'medium' memory model planned? If not, could you possibly add support for it?