mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Update K64F linker scripts for bootloader support
Add MBED_APP_START and MBED_APP_SIZE to the K64F's linker script so the start and size of an image can be specified. This allows the ROM to be split into a bootloader region and an application region.pull/3749/head
							parent
							
								
									aa6d673d70
								
							
						
					
					
						commit
						579b2fbe40
					
				| 
						 | 
					@ -60,14 +60,22 @@
 | 
				
			||||||
  #define __ram_vector_table_size__    0x00000000
 | 
					  #define __ram_vector_table_size__    0x00000000
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define m_interrupts_start             0x00000000
 | 
					#if !defined(MBED_APP_START)
 | 
				
			||||||
 | 
					  #define MBED_APP_START 0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MBED_APP_SIZE)
 | 
				
			||||||
 | 
					  #define MBED_APP_SIZE 0x100000
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define m_interrupts_start             MBED_APP_START
 | 
				
			||||||
#define m_interrupts_size              0x00000400
 | 
					#define m_interrupts_size              0x00000400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define m_flash_config_start           0x00000400
 | 
					#define m_flash_config_start           MBED_APP_START + 0x400
 | 
				
			||||||
#define m_flash_config_size            0x00000010
 | 
					#define m_flash_config_size            0x00000010
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define m_text_start                   0x00000410
 | 
					#define m_text_start                   MBED_APP_START + 0x410
 | 
				
			||||||
#define m_text_size                    0x000FFBF0
 | 
					#define m_text_size                    MBED_APP_SIZE - 0x410
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define m_interrupts_ram_start         0x1FFF0000
 | 
					#define m_interrupts_ram_start         0x1FFF0000
 | 
				
			||||||
#define m_interrupts_ram_size          __ram_vector_table_size__
 | 
					#define m_interrupts_ram_size          __ram_vector_table_size__
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,6 +63,14 @@ __stack_size__ = 0x400;
 | 
				
			||||||
 * heap and the page heap in uVisor applications. */
 | 
					 * heap and the page heap in uVisor applications. */
 | 
				
			||||||
__heap_size__ = 0x6000;
 | 
					__heap_size__ = 0x6000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MBED_APP_START)
 | 
				
			||||||
 | 
					  #define MBED_APP_START 0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MBED_APP_SIZE)
 | 
				
			||||||
 | 
					  #define MBED_APP_SIZE 0x100000
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x0400;
 | 
					HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x0400;
 | 
				
			||||||
STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;
 | 
					STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;
 | 
				
			||||||
M_VECTOR_RAM_SIZE = DEFINED(__ram_vector_table__) ? 0x0400 : 0x0;
 | 
					M_VECTOR_RAM_SIZE = DEFINED(__ram_vector_table__) ? 0x0400 : 0x0;
 | 
				
			||||||
| 
						 | 
					@ -70,9 +78,9 @@ M_VECTOR_RAM_SIZE = DEFINED(__ram_vector_table__) ? 0x0400 : 0x0;
 | 
				
			||||||
/* Specify the memory areas */
 | 
					/* Specify the memory areas */
 | 
				
			||||||
MEMORY
 | 
					MEMORY
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  m_interrupts          (RX)  : ORIGIN = 0x00000000, LENGTH = 0x00000400
 | 
					  m_interrupts          (RX)  : ORIGIN = MBED_APP_START, LENGTH = 0x400
 | 
				
			||||||
  m_flash_config        (RX)  : ORIGIN = 0x00000400, LENGTH = 0x00000010
 | 
					  m_flash_config        (RX)  : ORIGIN = MBED_APP_START + 0x400, LENGTH = 0x10
 | 
				
			||||||
  m_text                (RX)  : ORIGIN = 0x00000410, LENGTH = 0x000FFBF0
 | 
					  m_text                (RX)  : ORIGIN = MBED_APP_START + 0x410, LENGTH = MBED_APP_SIZE - 0x410
 | 
				
			||||||
  m_data                (RW)  : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000
 | 
					  m_data                (RW)  : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000
 | 
				
			||||||
  m_data_2              (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00030000
 | 
					  m_data_2              (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00030000
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,17 +53,25 @@ define symbol __ram_vector_table__ = 1;
 | 
				
			||||||
define symbol __stack_size__=0x8000;
 | 
					define symbol __stack_size__=0x8000;
 | 
				
			||||||
define symbol __heap_size__=0x10000;
 | 
					define symbol __heap_size__=0x10000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (!isdefinedsymbol(MBED_APP_START)) {
 | 
				
			||||||
 | 
					    define symbol MBED_APP_START = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (!isdefinedsymbol(MBED_APP_SIZE)) {
 | 
				
			||||||
 | 
					    define symbol MBED_APP_SIZE = 0x100000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define symbol __ram_vector_table_size__ =  isdefinedsymbol(__ram_vector_table__) ? 0x00000400 : 0;
 | 
					define symbol __ram_vector_table_size__ =  isdefinedsymbol(__ram_vector_table__) ? 0x00000400 : 0;
 | 
				
			||||||
define symbol __ram_vector_table_offset__ =  isdefinedsymbol(__ram_vector_table__) ? 0x000003FF : 0;
 | 
					define symbol __ram_vector_table_offset__ =  isdefinedsymbol(__ram_vector_table__) ? 0x000003FF : 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define symbol m_interrupts_start       = 0x00000000;
 | 
					define symbol m_interrupts_start       = MBED_APP_START;
 | 
				
			||||||
define symbol m_interrupts_end         = 0x000003FF;
 | 
					define symbol m_interrupts_end         = MBED_APP_START + 0x3FF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define symbol m_flash_config_start     = 0x00000400;
 | 
					define symbol m_flash_config_start     = MBED_APP_START + 0x400;
 | 
				
			||||||
define symbol m_flash_config_end       = 0x0000040F;
 | 
					define symbol m_flash_config_end       = MBED_APP_START + 0x40F;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define symbol m_text_start             = 0x00000410;
 | 
					define symbol m_text_start             = MBED_APP_START + 0x410;
 | 
				
			||||||
define symbol m_text_end               = 0x000FFFFF;
 | 
					define symbol m_text_end               = MBED_APP_START + MBED_APP_SIZE - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define symbol m_interrupts_ram_start   = 0x1FFF0000;
 | 
					define symbol m_interrupts_ram_start   = 0x1FFF0000;
 | 
				
			||||||
define symbol m_interrupts_ram_end     = 0x1FFF0000 + __ram_vector_table_offset__;
 | 
					define symbol m_interrupts_ram_end     = 0x1FFF0000 + __ram_vector_table_offset__;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue