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.

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;
 }