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.

Committer:
AnnaBridge
Date:
Thu Apr 19 14:31:27 2018 +0100
Revision:
165:d1b4690b3f8b
Parent:
145:64910690c574
mbed library. Release version 161

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 145:64910690c574 1 /*
AnnaBridge 165:d1b4690b3f8b 2 * Copyright (c) 2009-2018 ARM Limited. All rights reserved.
AnnaBridge 145:64910690c574 3 *
AnnaBridge 145:64910690c574 4 * SPDX-License-Identifier: Apache-2.0
AnnaBridge 145:64910690c574 5 *
AnnaBridge 145:64910690c574 6 * Licensed under the Apache License, Version 2.0 (the License) you may
AnnaBridge 145:64910690c574 7 * not use this file except in compliance with the License.
AnnaBridge 145:64910690c574 8 * You may obtain a copy of the License at
AnnaBridge 145:64910690c574 9 *
AnnaBridge 145:64910690c574 10 * http://www.apache.org/licenses/LICENSE-2.0
AnnaBridge 145:64910690c574 11 *
AnnaBridge 145:64910690c574 12 * Unless required by applicable law or agreed to in writing, software
AnnaBridge 145:64910690c574 13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
AnnaBridge 145:64910690c574 14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AnnaBridge 145:64910690c574 15 * See the License for the specific language governing permissions and
AnnaBridge 145:64910690c574 16 * limitations under the License.
AnnaBridge 145:64910690c574 17 */
AnnaBridge 145:64910690c574 18
AnnaBridge 165:d1b4690b3f8b 19 /*
AnnaBridge 165:d1b4690b3f8b 20 * WARNING: these symbols are the same as the defines in ../memory_zones.h but
AnnaBridge 165:d1b4690b3f8b 21 * can not be included here. Please make sure that the two definitions match.
AnnaBridge 145:64910690c574 22 */
AnnaBridge 165:d1b4690b3f8b 23 /* Code memory zones */
AnnaBridge 165:d1b4690b3f8b 24 define symbol FLASH_START = 0x00000000;
AnnaBridge 165:d1b4690b3f8b 25 define symbol FLASH_SIZE = 0x00040000; /* 256 KiB */
AnnaBridge 165:d1b4690b3f8b 26 define symbol ZBT_SSRAM1_START = 0x00400000;
AnnaBridge 165:d1b4690b3f8b 27 define symbol ZBT_SSRAM1_SIZE = 0x00400000; /* 4 MiB */
AnnaBridge 165:d1b4690b3f8b 28
AnnaBridge 165:d1b4690b3f8b 29 /* Data memory zones */
AnnaBridge 165:d1b4690b3f8b 30 define symbol SRAM0_START = 0x20000000;
AnnaBridge 165:d1b4690b3f8b 31 define symbol SRAM0_SIZE = 0x00008000; /* 32 KiB */
AnnaBridge 165:d1b4690b3f8b 32 define symbol SRAM1_START = 0x20008000;
AnnaBridge 165:d1b4690b3f8b 33 define symbol SRAM1_SIZE = 0x00008000; /* 32 KiB */
AnnaBridge 165:d1b4690b3f8b 34 define symbol SRAM2_START = 0x20010000;
AnnaBridge 165:d1b4690b3f8b 35 define symbol SRAM2_SIZE = 0x00008000; /* 32 KiB */
AnnaBridge 165:d1b4690b3f8b 36 define symbol SRAM3_START = 0x20018000;
AnnaBridge 165:d1b4690b3f8b 37 define symbol SRAM3_SIZE = 0x00008000; /* 32 KiB */
AnnaBridge 165:d1b4690b3f8b 38 define symbol ZBT_SSRAM23_START = 0x20400000;
AnnaBridge 165:d1b4690b3f8b 39 define symbol ZBT_SSRAM23_SIZE = 0x00400000; /* 4 MiB */
AnnaBridge 165:d1b4690b3f8b 40
AnnaBridge 165:d1b4690b3f8b 41 /* NVIC vector numbers and size. */
AnnaBridge 165:d1b4690b3f8b 42 define symbol NVIC_NUM_VECTORS = 16 + 57;
AnnaBridge 165:d1b4690b3f8b 43 define symbol NVIC_VECTORS_SIZE = NVIC_NUM_VECTORS * 4;
AnnaBridge 165:d1b4690b3f8b 44
AnnaBridge 165:d1b4690b3f8b 45 /* Specials */
AnnaBridge 165:d1b4690b3f8b 46 define symbol __ICFEDIT_intvec_start__ = FLASH_START;
AnnaBridge 165:d1b4690b3f8b 47
AnnaBridge 165:d1b4690b3f8b 48 /* Memory Regions */
AnnaBridge 165:d1b4690b3f8b 49 define symbol __ICFEDIT_region_ROM_start__ = ZBT_SSRAM1_START;
AnnaBridge 165:d1b4690b3f8b 50 define symbol __ICFEDIT_region_ROM_end__ = ZBT_SSRAM1_START + ZBT_SSRAM1_SIZE - 1;
AnnaBridge 165:d1b4690b3f8b 51 /*
AnnaBridge 165:d1b4690b3f8b 52 * At execution, RAM is set to be in ZBT SSRAM2 and 3, just after the vector
AnnaBridge 165:d1b4690b3f8b 53 * table previously moved from Flash.
AnnaBridge 165:d1b4690b3f8b 54 */
AnnaBridge 165:d1b4690b3f8b 55 define symbol __ICFEDIT_region_RAM_start__ = ZBT_SSRAM23_START + NVIC_VECTORS_SIZE;
AnnaBridge 165:d1b4690b3f8b 56 define symbol __ICFEDIT_region_RAM_end__ = ZBT_SSRAM23_START + ZBT_SSRAM23_SIZE;
AnnaBridge 165:d1b4690b3f8b 57
AnnaBridge 165:d1b4690b3f8b 58 /* Sizes */
AnnaBridge 145:64910690c574 59 /* Heap and Stack size */
AnnaBridge 165:d1b4690b3f8b 60 define symbol __ICFEDIT_size_heap__ = 0xF000;
AnnaBridge 145:64910690c574 61 define symbol __ICFEDIT_size_cstack__ = 0x1000;
AnnaBridge 145:64910690c574 62
AnnaBridge 145:64910690c574 63 define memory mem with size = 4G;
AnnaBridge 145:64910690c574 64 define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
AnnaBridge 145:64910690c574 65 define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
AnnaBridge 145:64910690c574 66
AnnaBridge 145:64910690c574 67 initialize by copy { readwrite };
AnnaBridge 145:64910690c574 68 do not initialize { section .noinit };
AnnaBridge 145:64910690c574 69
AnnaBridge 145:64910690c574 70 define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
AnnaBridge 145:64910690c574 71 define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
AnnaBridge 145:64910690c574 72
AnnaBridge 145:64910690c574 73 place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
AnnaBridge 145:64910690c574 74 place in ROM_region { readonly };
AnnaBridge 145:64910690c574 75 place in RAM_region { readwrite,
AnnaBridge 145:64910690c574 76 block CSTACK, block HEAP };