Go to file
Hugues de Valon a453faa4e9 CM3DS: switch to larger memories for code and data
This patch changes the linker files and defines to use the ZBT SSRAM
instead of the FPGA Block RAM for code and data.
The section 4.1.1, Code and RAM memory map, of the CM3DS Eval RTL and
testbench user guide explains the available memories.
This switch improves code memory from 256 kB to 4 MB and data memory
from 128 kB to 4 MB.

However, the ZBT SSRAM1 for code memory begins at 0x00400000 while the
processor can only boot at address 0x00000000 which means that it
expects the vector table to be at that address. That is why we have to
create 2 load regions in the linker scripts: one with only the vector
table at address 0x0 and one with code + data at address 0x00400000.
Because of these two load regions, linker will produce different
behaviours:
    * GCC_ARM and IAR will only create 1 binary with both load regions
padding with 0 in between. The binary will then be very large (at least
4 MB) and the flash process will take longer.
    * ARM and ARMC6 will create 2 binaries for the two load regions. The
load addresses of the two binaries can be written in the images.txt file
on the MPS2 board. You can also use the --bincombined option of fromelf
utility to produce only 1 large binary.

This patch also adds the memory_zones.h file to try to put in common all
the memory addresses that were previously hard coded in the linker
scripts / startup files.

With that patch in, the simplest option is to directly use the .elf file
with the MPS2, which is only possible with mbb_v225.ebf and more recent
firmwares. It will now be the default for CM3DS.

This commit works with greentea thanks to the now merged pull request
ARMmbed/htrun#181 in order to copy .elf file to the MPS2 board.

Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2018-03-12 16:25:05 +00:00
.github pull request: add required info 2018-02-27 16:06:20 +00:00
TESTS Merge pull request #6230 from bulislaw/system_reset 2018-03-01 10:31:07 -06:00
cmsis Core(A): Changed macro __DEPRECATED to CMSIS_DEPRECATED. (Issue #287) 2017-12-21 14:09:25 +09:00
drivers Merge pull request #6230 from bulislaw/system_reset 2018-03-01 10:31:07 -06:00
events Merge pull request #6286 from delftswa2018/feature-typo-fixes 2018-03-08 17:36:23 +01:00
features Merge pull request #6171 from anttiylitokola/master 2018-03-08 17:44:17 +01:00
hal Fix review comments and merge issues 2018-03-02 00:29:14 +00:00
platform Fix review comments and merge issues 2018-03-02 00:29:14 +00:00
rtos Merge pull request #6257 from SenRamakri/sen_FaultHandlerFixes 2018-03-08 13:04:07 -06:00
targets CM3DS: switch to larger memories for code and data 2018-03-12 16:25:05 +00:00
tools Merge pull request #6271 from lfdebrux/profile-merging 2018-03-08 17:41:51 +01:00
.coveragerc Exclude libraries and tests from coverage numbers 2017-09-25 11:51:31 -05:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore add few files to gitignore list 2018-02-09 10:57:31 +00:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Added deleting of feature/cellular when testing a build without RTOS in .travis.yml 2018-03-02 14:38:07 +02:00
CONTRIBUTING.md Update link in CONTRIBUTING.md 2017-06-09 16:38:38 -05:00
DOXYGEN_FRONTPAGE.md Very minimal text 2016-08-04 14:09:59 +01:00
Jenkinsfile Jenkinsfile: remove client app test temporarily 2017-06-01 12:15:09 +01:00
LICENSE Add Apache v2 LICENSE file 2013-08-06 12:05:04 +01:00
LICENSE-BSD-3-Clause Adding license text and BSD-Clause 3 2018-02-09 11:00:56 -06:00
README.md Simple typo fix in the README.md 2018-01-08 19:50:18 +00:00
doxyfile_options Doxygen: Update excluded paths and predefined macros. 2017-12-14 16:44:01 +00:00
doxygen_options.json Doxygen: Update path and predefined macros. 2017-12-14 16:45:31 +00:00
logo.png Readme updates for style and branding 2017-12-04 14:59:16 -06:00
mbed.h Merge pull request #6230 from bulislaw/system_reset 2018-03-01 10:31:07 -06:00
requirements.txt Add JSON Schema library to requirements.txt 2018-02-01 17:18:40 +00:00

README.md

Mbed OS

Build status release Build status master Tools coverage status PR progress

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.

Mbed OS provides a platform that includes:

  • Security foundations.
  • Cloud management services.
  • Drivers for sensors, I/O devices and connectivity.

Release notes

The release notes detail the current release. You can also find information about previous versions.

Getting started for developers

We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.

Getting started for contributors

We also have a contributing and publishing guide that covers licensing, contributor agreements and style guidelines.