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_K64F/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld
- Revision:
- 135:176b8275d35d
- Parent:
- 130:d75b3fe1f5cb
- Child:
- 136:ef9c61f8c49f
--- a/TARGET_K64F/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld Mon Jan 16 12:05:23 2017 +0000 +++ b/TARGET_K64F/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld Thu Feb 02 16:02:30 2017 +0000 @@ -93,9 +93,9 @@ /* 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 : + __UVISOR_FLASH_OFFSET = 0x410; + __UVISOR_FLASH_START = ORIGIN(m_interrupts) + __UVISOR_FLASH_OFFSET; + .text __UVISOR_FLASH_START : { /* uVisor code and data */ . = ALIGN(4); @@ -197,27 +197,26 @@ __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 own memory and private box memories + /* If uVisor shares the SRAM with the OS/app, ensure that this section is + * the first one after the VTOR relocation section. */ + /* 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): + __UVISOR_SRAM_START = ORIGIN(m_data) + __UVISOR_SRAM_OFFSET; + .uvisor.bss __UVISOR_SRAM_START (NOLOAD): { . = ALIGN(32); __uvisor_bss_start = .; - /* protected uvisor main bss */ + /* Protected uVisor own BSS section */ . = ALIGN(32); __uvisor_bss_main_start = .; KEEP(*(.keep.uvisor.bss.main)) . = ALIGN(32); __uvisor_bss_main_end = .; - /* protected uvisor secure boxes bss */ + /* Protected uVisor boxes' static memories */ . = ALIGN(32); __uvisor_bss_boxes_start = .; KEEP(*(.keep.uvisor.bss.boxes)) @@ -228,7 +227,10 @@ __uvisor_bss_end = .; } > m_data - /* Heap space for the page allocator */ + /* Heap space for the page allocator + /* If uVisor shares the SRAM with the OS/app, ensure that this section is + * the first one after the uVisor BSS section. Otherwise, ensure it is the + * first one after the VTOR relocation section. */ .page_heap (NOLOAD) : { . = ALIGN(32); @@ -305,6 +307,7 @@ } > m_data_2 USB_RAM_GAP = DEFINED(__usb_ram_size__) ? __usb_ram_size__ : 0x800; + /* Uninitialized data section */ .bss : { @@ -354,11 +357,13 @@ .ARM.attributes 0 : { *(.ARM.attributes) } - ASSERT(__StackLimit >= __HeapLimit, "region m_data_2 overflowed with stack and heap") + 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); + __uvisor_public_sram_start = __uvisor_sram_start; + __uvisor_public_sram_end = __uvisor_sram_end; }