The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
mbed 2
This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.
Diff: TARGET_RO359B/TOOLCHAIN_GCC_ARM/MK24FN1M0xxx12.ld
- Revision:
- 171:3a7713b1edbc
- Parent:
- 160:5571c4ff569f
--- a/TARGET_RO359B/TOOLCHAIN_GCC_ARM/MK24FN1M0xxx12.ld Thu Sep 06 13:39:34 2018 +0100 +++ b/TARGET_RO359B/TOOLCHAIN_GCC_ARM/MK24FN1M0xxx12.ld Thu Nov 08 11:45:42 2018 +0000 @@ -85,32 +85,22 @@ .interrupts : { __VECTOR_TABLE = .; - . = ALIGN(4); + . = ALIGN(8); KEEP(*(.isr_vector)) /* Startup code */ - . = ALIGN(4); + . = ALIGN(8); } > m_interrupts .flash_config : { - . = ALIGN(4); + . = ALIGN(8); KEEP(*(.FlashConfig)) /* Flash Configuration Field (FCF) */ - . = ALIGN(4); + . = ALIGN(8); } > m_flash_config - /* The program code and other data goes into internal flash */ - /* Note: The uVisor expects this section at a fixed location, as specified by - * the porting process configuration parameter: FLASH_OFFSET. */ - __UVISOR_TEXT_OFFSET = 0x410; - __UVISOR_TEXT_START = ORIGIN(m_interrupts) + __UVISOR_TEXT_OFFSET; - .text __UVISOR_TEXT_START : + .text : { - /* uVisor code and data */ - . = ALIGN(4); - __uvisor_main_start = .; - *(.uvisor.main) - __uvisor_main_end = .; - . = ALIGN(4); + . = ALIGN(8); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.rodata) /* .rodata sections (constants, strings, etc.) */ @@ -120,7 +110,7 @@ *(.eh_frame) KEEP (*(.init)) KEEP (*(.fini)) - . = ALIGN(4); + . = ALIGN(8); } > m_text .ARM.extab : @@ -195,55 +185,15 @@ .interrupts_ram : { - . = ALIGN(4); + . = ALIGN(8); __VECTOR_RAM__ = .; __interrupts_ram_start__ = .; /* Create a global symbol at data start */ *(.m_interrupts_ram) /* This is a user defined section */ . += M_VECTOR_RAM_SIZE; - . = ALIGN(4); + . = ALIGN(8); __interrupts_ram_end__ = .; /* Define a global symbol at data end */ } > m_data - /* Ensure that the uVisor BSS section is put first after the relocated - * interrupt table in SRAM. */ - /* Note: The uVisor expects this section at a fixed location, as specified by - * the porting process configuration parameter: SRAM_OFFSET. */ - __UVISOR_SRAM_OFFSET = 0x400; - __UVISOR_BSS_START = ORIGIN(m_data) + __UVISOR_SRAM_OFFSET; - ASSERT(__interrupts_ram_end__ <= __UVISOR_BSS_START, - "The ISR relocation region overlaps with the uVisor BSS section.") - .uvisor.bss __UVISOR_BSS_START (NOLOAD): - { - . = ALIGN(32); - __uvisor_bss_start = .; - - /* protected uvisor main bss */ - . = ALIGN(32); - __uvisor_bss_main_start = .; - KEEP(*(.keep.uvisor.bss.main)) - . = ALIGN(32); - __uvisor_bss_main_end = .; - - /* protected uvisor secure boxes bss */ - . = ALIGN(32); - __uvisor_bss_boxes_start = .; - KEEP(*(.keep.uvisor.bss.boxes)) - . = ALIGN(32); - __uvisor_bss_boxes_end = .; - - . = ALIGN(32); - __uvisor_bss_end = .; - } > m_data - - /* Heap space for the page allocator */ - .page_heap (NOLOAD) : - { - . = ALIGN(32); - __uvisor_page_start = .; - KEEP(*(.keep.uvisor.page_heap)) - . = ALIGN(32); - __uvisor_page_end = .; - } > m_data_2 __VECTOR_RAM = DEFINED(__ram_vector_table__) ? __VECTOR_RAM__ : ORIGIN(m_interrupts); __RAM_VECTOR_TABLE_SIZE_BYTES = DEFINED(__ram_vector_table__) ? (__interrupts_ram_end__ - __interrupts_ram_start__) : 0x0; @@ -252,13 +202,13 @@ { PROVIDE(__etext = LOADADDR(.data)); /* Define a global symbol at end of code, */ PROVIDE(__DATA_ROM = LOADADDR(.data)); /* Symbol is used by startup for data initialization. */ - . = ALIGN(4); + . = ALIGN(8); __DATA_RAM = .; __data_start__ = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */ KEEP(*(.jcr*)) - . = ALIGN(4); + . = ALIGN(8); __data_end__ = .; /* define a global symbol at data end */ } > m_data_2 AT > m_text @@ -266,37 +216,6 @@ text_end = ORIGIN(m_text) + LENGTH(m_text); ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") - /* uVisor configuration section - * This section must be located after all other flash regions. */ - .uvisor.secure : - { - . = ALIGN(32); - __uvisor_secure_start = .; - - /* uVisor secure boxes configuration tables */ - . = ALIGN(32); - __uvisor_cfgtbl_start = .; - KEEP(*(.keep.uvisor.cfgtbl)) - . = ALIGN(32); - __uvisor_cfgtbl_end = .; - - /* Pointers to the uVisor secure boxes configuration tables */ - /* Note: Do not add any further alignment here, as uVisor will need to have - * access to the exact list of pointers. */ - __uvisor_cfgtbl_ptr_start = .; - KEEP(*(.keep.uvisor.cfgtbl_ptr_first)) - KEEP(*(.keep.uvisor.cfgtbl_ptr)) - __uvisor_cfgtbl_ptr_end = .; - - /* Pointers to all boxes register gateways. These are grouped here to allow - * discoverability and firmware verification. */ - __uvisor_register_gateway_ptr_start = .; - KEEP(*(.keep.uvisor.register_gateway_ptr)) - __uvisor_register_gateway_ptr_end = .; - - . = ALIGN(32); - __uvisor_secure_end = .; - } > m_text /* Uninitialized data section * This region is not initialized by the C/C++ library and can be used to @@ -316,7 +235,7 @@ .bss : { /* This is used by the startup in order to initialize the .bss section */ - . = ALIGN(4); + . = ALIGN(8); __START_BSS = .; __bss_start__ = .; *(.bss) @@ -325,7 +244,7 @@ USB_RAM_START = .; . += USB_RAM_GAP; *(COMMON) - . = ALIGN(4); + . = ALIGN(8); __bss_end__ = .; __END_BSS = .; } > m_data_2 @@ -333,14 +252,12 @@ .heap : { . = ALIGN(8); - __uvisor_heap_start = .; __end__ = .; PROVIDE(end = .); __HeapBase = .; . += HEAP_SIZE; __HeapLimit = .; __heap_limit = .; /* Add for _sbrk */ - __uvisor_heap_end = .; } > m_data_2 m_usb_bdt USB_RAM_START (NOLOAD) : @@ -363,9 +280,4 @@ ASSERT(__StackLimit >= __HeapLimit, "region m_data_2 overflowed with stack and heap") - /* Provide the physical memory boundaries for uVisor. */ - __uvisor_flash_start = ORIGIN(m_interrupts); - __uvisor_flash_end = ORIGIN(m_text) + LENGTH(m_text); - __uvisor_sram_start = ORIGIN(m_data); - __uvisor_sram_end = ORIGIN(m_data_2) + LENGTH(m_data_2); }