1 |
786 |
skrzyp |
// eCos memory layout
|
2 |
|
|
|
3 |
|
|
#include
|
4 |
|
|
#include
|
5 |
|
|
|
6 |
|
|
MEMORY
|
7 |
|
|
{
|
8 |
|
|
ram : ORIGIN = 0x20000000 - CYGHWR_HAL_KINETIS_SRAM_BANK_SIZE, LENGTH = CYGHWR_HAL_KINETIS_SRAM_SIZE-CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
|
9 |
|
|
flash : ORIGIN = 0x00000000, LENGTH = CYGHWR_HAL_KINETIS_FLASH_SIZE
|
10 |
|
|
#ifdef CYGHWR_HAL_KINETIS_FLEXNVM_DFLASH_SIZE
|
11 |
|
|
flexnvm : ORIGIN = 0x10000000, LENGTH = CYGHWR_HAL_KINETIS_FLEXNVM_DFLASH_SIZE
|
12 |
|
|
#endif
|
13 |
|
|
#ifdef CYGHWR_HAL_CORTEXM_KINETIS_EEE
|
14 |
|
|
eeeprom0 : ORIGIN = 0x14000000, LENGTH = CYGHWR_HAL_KINETIS_EEE0_SIZE
|
15 |
|
|
# if CYGHWR_HAL_KINETIS_EEE_SPLIT > 1
|
16 |
|
|
eeeprom1 : ORIGIN = 0x14000000 + CYGHWR_HAL_KINETIS_EEE0_SIZE, LENGTH = CYGHWR_HAL_KINETIS_EEE1_SIZE
|
17 |
|
|
# endif
|
18 |
|
|
#else
|
19 |
|
|
flexram : ORIGIN = 0x14000000, LENGTH = CYGHWR_HAL_KINETIS_FLEXRAM_SIZE
|
20 |
|
|
#endif
|
21 |
|
|
}
|
22 |
|
|
|
23 |
|
|
SECTIONS
|
24 |
|
|
{
|
25 |
|
|
SECTIONS_BEGIN
|
26 |
|
|
SECTION_rom_vectors (flash, 0x00000000, LMA_EQ_VMA)
|
27 |
|
|
USER_SECTION(kinetis_misc, flash, ALIGN (0x8), LMA_EQ_VMA)
|
28 |
|
|
|
29 |
|
|
// Kinetis FLASH configuration field. Must be present at 0x00000400
|
30 |
|
|
// Warning: Omitting FLASH configuration field or moving it to
|
31 |
|
|
// other location may lock Kinetis controller.
|
32 |
|
|
// See src/kinetis_mis.c for definition
|
33 |
|
|
|
34 |
|
|
.flash_conf 0x00000400 : { KEEP (*(.flash_conf)) } > flash
|
35 |
|
|
|
36 |
|
|
SECTION_RELOCS (flash, ALIGN (0x8), LMA_EQ_VMA)
|
37 |
|
|
SECTION_text (flash, ALIGN (0x8), LMA_EQ_VMA)
|
38 |
|
|
SECTION_fini (flash, ALIGN (0x8), LMA_EQ_VMA)
|
39 |
|
|
SECTION_rodata (flash, ALIGN (0x8), LMA_EQ_VMA)
|
40 |
|
|
SECTION_rodata1 (flash, ALIGN (0x8), LMA_EQ_VMA)
|
41 |
|
|
SECTION_fixup (flash, ALIGN (0x8), LMA_EQ_VMA)
|
42 |
|
|
SECTION_gcc_except_table (flash, ALIGN (0x8), LMA_EQ_VMA)
|
43 |
|
|
SECTION_eh_frame (flash, ALIGN (0x8), LMA_EQ_VMA)
|
44 |
|
|
SECTION_got (flash, ALIGN (0x8), LMA_EQ_VMA)
|
45 |
|
|
#ifdef CYGHWR_HAL_KINETIS_FLEXNVM_DFLASH_SIZE
|
46 |
|
|
USER_SECTION(d_flash, flexnvm, 0x10000000 (NOLOAD), LMA_EQ_VMA)
|
47 |
|
|
#endif
|
48 |
|
|
#ifdef CYGHWR_HAL_CORTEXM_KINETIS_EEE
|
49 |
|
|
USER_SECTION(e_eeprom0, eeeprom0, 0x14000000 (NOLOAD), LMA_EQ_VMA)
|
50 |
|
|
# if CYGHWR_HAL_KINETIS_EEE_SPLIT > 1
|
51 |
|
|
USER_SECTION(e_eeprom1, eeeprom1, 0x14000000 + CYGHWR_HAL_KINETIS_EEE0_SIZE (NOLOAD), LMA_EQ_VMA)
|
52 |
|
|
# endif
|
53 |
|
|
#else
|
54 |
|
|
USER_SECTION(flex_ram, flexram, 0x14000000 (NOLOAD), LMA_EQ_VMA)
|
55 |
|
|
#endif
|
56 |
|
|
SECTION_data (ram, 0x20000000 - CYGHWR_HAL_KINETIS_SRAM_BANK_SIZE + 0x400, FOLLOWING (.got))
|
57 |
|
|
SECTION_sram (ram, ALIGN (0x8), FOLLOWING (.data))
|
58 |
|
|
SECTION_bss (ram, ALIGN (0x8), LMA_EQ_VMA)
|
59 |
|
|
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
|
60 |
|
|
SECTIONS_END
|
61 |
|
|
}
|
62 |
|
|
|
63 |
|
|
hal_vsr_table = (0x20000000 - CYGHWR_HAL_KINETIS_SRAM_BANK_SIZE);
|
64 |
|
|
hal_virtual_vector_table = hal_vsr_table + 128*4;
|
65 |
|
|
hal_startup_stack = 0x20000000 + CYGHWR_HAL_KINETIS_SRAM_BANK_SIZE;
|