GCC ARM

Target Family: MK60DN512Z

Listing: Memory Segments
MEMORY
{

 m_interrupts (rx) : ORIGIN = 0x00000000, LENGTH = 0x1E0
 m_cfmprotrom (rx) : ORIGIN = 0x00000400, LENGTH = 0x10
 m_text (rx) : ORIGIN = 0x00000800, LENGTH = 512K - 0x800  m_data    (rwx) : ORIGIN = 0x1FFF0000, LENGTH = 64K /* Lower SRAM */
  m_data2   (rwx) : ORIGIN = 0x20000000, LENGTH = 64K  /* Upper SRAM */
}
Listing: Input calc_crc.crc file
CRC
SEED = 0xFEF
FILL = 0xFF
FROM 0x00000800 TO 0x00000804; //memory range from m_text segment
DEST = 0x7FFEA

To read bytes present at specified memory location go to file offset.

Listing: Input Bytes from .elf file
LOAD off 0x000002b4 vaddr 0x00000800 paddr 0x00000800 align 2**2
     filesz 0x000013f0 memsz 0x000013f0 flags r-x

2B0: 01 08 00 00 80 B4 00 AF 00 //bytes present in memory range from 0x00000800 TO 0x00000804
Listing: Program Header Before Post Linking
Program Header:
 LOAD off 0x000000d4 vaddr 0x00000000 paddr 0x00000000 align 2**2
   filesz 0x000001e0 memsz 0x000001e0 flags r--
 LOAD off    0x000002b4 vaddr 0x00000800 paddr 0x00000800 align 2**2
   filesz 0x000013f0 memsz 0x000013f0 flags r-x
 LOAD off    0x000016a4 vaddr 0x1fff0000 paddr 0x00001bf0 align 2**2
   filesz 0x00000014 memsz 0x00000030 flags rw-
 LOAD off    0x000016b8 vaddr 0x20000000 paddr 0x00001c04 align 2**0
   filesz 0x00000024 memsz 0x00000024 flags rw-
 LOAD off    0x000016dc vaddr 0x1fff0030 paddr 0x00001c20 align 2**0
   filesz 0x00000000 memsz 0x00001000 flags rw-

To read the checksum value go to the file offset.

Listing: Output in .elf.crc.elf File
LOAD off    0x000777bc vaddr 0x0007ffea paddr 0x0007ffea align 2**0
         filesz 0x00000002 memsz 0x00000002 flags r--

777B0: 5F 64 61 74 61 5F 73 69 7A 65 00 00 4D 21 //calculated checksum value -2 bytes
Listing: Program Header After Post Linking
Program Header:
  LOAD off    0x000000f4 vaddr 0x00000000 paddr 0x00000000 align 2**2
    filesz 0x000001e0 memsz 0x000001e0 flags r--
  LOAD off    0x000002d4 vaddr 0x00000800 paddr 0x00000800 align 2**2
    filesz 0x000013f0 memsz 0x000013f0 flags r-x
  LOAD off    0x000016c4 vaddr 0x1fff0000 paddr 0x00001bf0 align 2**2
    filesz 0x00000014 memsz 0x00000030 flags rw-
  LOAD off    0x000016d8 vaddr 0x20000000 paddr 0x00001c04 align 2**0
    filesz 0x00000024 memsz 0x00000024 flags rw-
  LOAD off    0x000016fc vaddr 0x1fff0030 paddr 0x00001c20 align 2**0
    filesz 0x00000000 memsz 0x00001000 flags rw- 
 LOAD off 0x000777bc vaddr 0x0007ffea paddr 0x0007ffea align 2**0 filesz 0x00000002 memsz 0x00000002 flags r--

New segment added by the post linker or crcgen utility.