MEMORY{TEXTMEM (ARX) : ORIGIN = 0x100, LENGTH = 32KDATAMEM (AW) : org = 0x1000, l = (64 * 1024)}SECTIONS{. = 0;.text :{/* The value returned by the ORIGIN operator is a constant.However it is being assigned to a symbol declared withina section. Therefore the symbol is section-relative andits value will include the offset of that section fromthe start of memory. ie the declaration:text_start = ORIGIN (TEXTMEM);here will result in text_start having a value of 0x200.Hence we need to subtract the absolute value of thelocation counter at this point in order to give text_starta value that is truely absolute, and which coincidentallywill allow the tests in script.exp to work. */text_start = ORIGIN(TEXTMEM) - ABSOLUTE (.);*(.text)*(.pr)text_end = .;} > TEXTMEMdata_start = ORIGIN (DATAMEM);.data :{*(.data)*(.rw)data_end = .;} >DATAMEMfred = ORIGIN(DATAMEM) + LENGTH(DATAMEM);}