Skip to content

Top-level manifest for mbed OS releases.

License

Notifications You must be signed in to change notification settings

echegmik/mbed-os

Repository files navigation

ARM mbed OS

Welcome to ARM mbed OS, a new operating system for ARM microcontrollers, designed for the Internet of Things.

mbed OS is comprised of a number of software components, combined together and built using yotta. This means code lives in a number of repositories. This repository serves as an entry point for mbed OS, and as a central location for documentation, and for filing bugs which span multiple components.

Note that this is a beta release -- this means that the software is still maturing, and many things will change. In particular, module names, repo URLs, APIs, header file names, configuration parameters and any other details can and will change. We'll try to mitigate the imposition that these changes have on your code where possible, but please expect backwards-incompatible changes.

The code for mbed OS can be found in these repos:

  • Core OS modules
    • core-util -- core data structures and primitives for the OS.
    • minar -- MINAR, the mbed OS event scheduler.
    • ualloc -- memory allocation for mbed OS.
      • dlmalloc -- Doug Lea's legendary memory allocator.
    • uvisor -- the mbed OS uVisor, a supervisory kernel for security on mbed OS.
      • uvisor-lib -- APIs for interacting with the uVisor and incorporating it into your system.
    • compiler-polyfill -- common compiler intrinsics and attributes made portable across toolchains.
  • Hardware Abstraction & Drivers
  • Networking & Connectivity
    • sal -- mbed OS's socket abstraction layer (SAL). This enables the various ARM and partner networking stacks to have a common interface.
    • sockets -- high level portable socket layer (sitting on top of the SAL).
    • ble -- APIs for using Bluetooth Low Energy.
      • ble-nrf51822 -- implementation of the BLE APIs for Nordic nRF51822.
    • mbed-mesh-api -- APIs for initialising and using the mesh network.
    • mbedtls -- mbed TLS, the SSL/TLS stack (including cryptographic and certification handling functionality).
  • mbed Client -- means for connecting to and managing mbed OS devices with mbed Device Server or mbed Device Connector. This includes the OMA LWM2M client, CoAP protocol implementations, and related functionality.
  • Tools & Utilities
    • yotta -- component management, configuration and build. Start here, as you need to get familiar with this tool to use mbed OS!
    • helloyotta -- example project for yotta.
    • greentea -- regression testing tool.
    • htrun -- test runner for host-supervised tests.
    • mbed-ls -- utility for detecting and listing mbed Enabled development boards attached to the development host.
    • cpputest -- unit testing framework for C++.

The following modules define the yotta targets we support building mbed OS for. Currently we only support the following boards:

  1. Freescale FRDM-K64F board -- a powerful and flexible development board based around the Freescale K64F Kinetis MK64FN1M0VLL12 MCU. It has a high performance ARM® Cortex™-M4 Core (with Floating point unit and DSP extensions), clocked at up to 120MHz, paired with 256KB RAM, 1MB FLASH and a wide array of peripherals. This is currently the best supported development board for mbed OS; networking (ethernet, and mesh with a 802.15.4 radio shield), cryptographic acceleration, and other features are supported already in this beta release. You can use either ARM's C/C++ compiler, or the open source GCC compiler.
  1. ST STM32F429I Discovery board -- based on the STM32F429ZIT6 microcontroller with 2 MB of Flash memory, 256 KB of RAM, and a Cortex-M4 (with FPU and DSP) that can be clocked up to 180 MHz. Currently this board and MCU is not as well supported as the K64F, especially if you want to use uVisor or networking.
  1. Nordic nRF51-DK board -- based around the Nordic nRF51822 Bluetooth Smart/Low Energy device, this has a Cortex-M0 core, with 256 kB of flash and 16-32 kB of RAM. Due to much of the RAM being reserved for Nordic's "SoftDevice" BLE stack, only a small amount of RAM is available for mbed OS and your application, thus this board is best for simpler applications such as BLE peripherals.

Finally, there are a number of yotta targets that provide shared functionality:

We also have a number of examples to help you get started:

About

Top-level manifest for mbed OS releases.

Resources

License

Stars

Watchers

Forks

Packages

No packages published