| //***************************************************************************** | |
| // | |
| // boot_demo1.icf - Linker configuration file for boot_demo1. | |
| // | |
| // Copyright (c) 2007 Luminary Micro, Inc. All rights reserved. | |
| // Luminary Micro Confidential - For Use Under NDA Only | |
| // | |
| //***************************************************************************** | |
| // | |
| // Define a memory region that covers the entire 4 GB addressible space of the | |
| // processor. | |
| // | |
| define memory mem with size = 4G; | |
| // | |
| // Define a region for the on-chip flash. | |
| // | |
| define region FLASH = mem:[from 0x00000000 to 0x00003fff]; | |
| // | |
| // Define a region for the on-chip SRAM. | |
| // | |
| define region SRAM = mem:[from 0x20000000 to 0x20000fff]; | |
| // | |
| // Define a block for the heap. The size should be set to something other | |
| // than zero if things in the C library that require the heap are used. | |
| // | |
| define block HEAP with alignment = 8, size = 0x00000000 { }; | |
| // | |
| // Indicate that the read/write values should be initialized by copying from | |
| // flash. | |
| // | |
| initialize by copy { readwrite }; | |
| // | |
| // Initicate that the noinit values should be left alone. This includes the | |
| // stack, which if initialized will destroy the return address from the | |
| // initialization code, causing the processor to branch to zero and fault. | |
| // | |
| do not initialize { section .noinit }; | |
| // | |
| // Place the interrupt vectors at the start of flash. | |
| // | |
| place at start of FLASH { readonly section .intvec }; | |
| // | |
| // Place the remainder of the read-only items into flash. | |
| // | |
| place in FLASH { readonly }; | |
| // | |
| // Place all read/write items into SRAM. | |
| // | |
| place in SRAM { readwrite, block HEAP }; |