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