KL27Z: Update the ARM linker file

Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
pull/2481/head
Mahadevan Mahesh 2016-08-17 11:56:25 -05:00
parent 1fe6c2f04a
commit 2d97246fb0
1 changed files with 28 additions and 4 deletions

View File

@ -15,7 +15,7 @@
** Abstract: ** Abstract:
** Linker file for the Keil ARM C/C++ Compiler ** Linker file for the Keil ARM C/C++ Compiler
** **
** Copyright (c) 2015 Freescale Semiconductor, Inc. ** Copyright (c) 2016 Freescale Semiconductor, Inc.
** All rights reserved. ** All rights reserved.
** **
** Redistribution and use in source and binary forms, with or without modification, ** Redistribution and use in source and binary forms, with or without modification,
@ -50,6 +50,10 @@
*/ */
#define __ram_vector_table__ 1 #define __ram_vector_table__ 1
/* Heap 1/4 of ram and stack 1/8 */
#define __stack_size__ 0x800
#define __heap_size__ 0x1000
#if (defined(__ram_vector_table__)) #if (defined(__ram_vector_table__))
#define __ram_vector_table_size__ 0x00000200 #define __ram_vector_table_size__ 0x00000200
#else #else
@ -71,22 +75,42 @@
#define m_data_start (m_interrupts_ram_start + m_interrupts_ram_size) #define m_data_start (m_interrupts_ram_start + m_interrupts_ram_size)
#define m_data_size (0x00004000 - m_interrupts_ram_size) #define m_data_size (0x00004000 - m_interrupts_ram_size)
/* Sizes */
#if (defined(__stack_size__))
#define Stack_Size __stack_size__
#else
#define Stack_Size 0x0400
#endif
LR_m_text m_interrupts_start 0x10000 { ; load region size_region #if (defined(__heap_size__))
#define Heap_Size __heap_size__
#else
#define Heap_Size 0x0400
#endif
LR_m_text m_interrupts_start m_text_start+m_text_size-m_interrupts_start { ; load region size_region
VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address
* (RESET,+FIRST) * (RESET,+FIRST)
} }
ER_m_flash_config m_flash_config_start FIXED m_flash_config_size { ; load address = execution address ER_m_flash_config m_flash_config_start FIXED m_flash_config_size { ; load address = execution address
* (FlashConfig) * (FlashConfig)
} }
ER_m_text m_text_start FIXED m_text_size { ; load address = execution address ER_m_text m_text_start m_text_size { ; load address = execution address
* (InRoot$$Sections) * (InRoot$$Sections)
.ANY (+RO) .ANY (+RO)
} }
#if (defined(__ram_vector_table__))
VECTOR_RAM m_interrupts_ram_start EMPTY m_interrupts_ram_size { VECTOR_RAM m_interrupts_ram_start EMPTY m_interrupts_ram_size {
} }
RW_IRAM1 m_data_start m_data_size { ; RW data #else
VECTOR_RAM m_interrupts_start EMPTY 0 {
}
#endif
RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
RW_IRAM1 +0 EMPTY Heap_Size { ; RW data
}
} }