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:
171:3a7713b1edbc
Parent:
156:ff21514d8981
Child:
172:65be27845400
--- a/TARGET_HEXIWEAR/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld	Thu Sep 06 13:39:34 2018 +0100
+++ b/TARGET_HEXIWEAR/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld	Thu Nov 08 11:45:42 2018 +0000
@@ -57,10 +57,6 @@
  * the stack where main runs is determined via the RTOS. */
 __stack_size__ = 0x400;
 
-/* This is the guaranteed minimum available heap size for an application. When
- * uVisor is enabled, this is also the maximum available heap size. The
- * HEAP_SIZE value is set by uVisor porters to balance the size of the legacy
- * heap and the page heap in uVisor applications. */
 __heap_size__ = 0x6000;
 
 #if !defined(MBED_APP_START)
@@ -92,32 +88,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_FLASH_OFFSET = 0x410;
-  __UVISOR_FLASH_START = ORIGIN(m_interrupts) + __UVISOR_FLASH_OFFSET;
-  .text __UVISOR_FLASH_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.) */
@@ -127,7 +113,7 @@
     *(.eh_frame)
     KEEP (*(.init))
     KEEP (*(.fini))
-    . = ALIGN(4);
+    . = ALIGN(8);
   } > m_text
 
   .ARM.extab :
@@ -202,57 +188,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
 
-  /* 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_SRAM_START = ORIGIN(m_data) + __UVISOR_SRAM_OFFSET;
-  .uvisor.bss __UVISOR_SRAM_START (NOLOAD):
-  {
-    . = ALIGN(32);
-    __uvisor_bss_start = .;
-
-    /* Protected uVisor own BSS section */
-    . = ALIGN(32);
-    __uvisor_bss_main_start = .;
-    KEEP(*(.keep.uvisor.bss.main))
-    . = ALIGN(32);
-    __uvisor_bss_main_end = .;
-
-    /* Protected uVisor boxes' static memories */
-    . = 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
-  /* 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);
-    __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;
@@ -261,13 +205,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
 
@@ -275,37 +219,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
@@ -326,7 +239,7 @@
   .bss :
   {
     /* This is used by the startup in order to initialize the .bss section */
-    . = ALIGN(4);
+    . = ALIGN(8);
     __START_BSS = .;
     __bss_start__ = .;
     *(.bss)
@@ -335,7 +248,7 @@
     USB_RAM_START = .;
     . += USB_RAM_GAP;
     *(COMMON)
-    . = ALIGN(4);
+    . = ALIGN(8);
     __bss_end__ = .;
     __END_BSS = .;
   } > m_data_2
@@ -343,14 +256,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) :
@@ -373,11 +284,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);
-  __uvisor_public_sram_start = __uvisor_sram_start;
-  __uvisor_public_sram_end = __uvisor_sram_end;
 }