Skip to content

Commit ef6771d

Browse files
Merge branch 'development' into gap-phy
2 parents adf339a + 7907379 commit ef6771d

File tree

97 files changed

+1289
-550
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1289
-550
lines changed

docs.json

Lines changed: 255 additions & 203 deletions
Large diffs are not rendered by default.

docs/images/BLEsample.png

80.3 KB
Loading
-67.3 KB
Binary file not shown.
Loading

docs/introduction/introduction.md

Lines changed: 28 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,61 @@
1-
## Mbed OS 5
1+
## Arm Mbed OS
22

3-
Arm Mbed OS lets you write applications that run on embedded devices, by providing the layer that interprets your application's code in a way the hardware can understand.
3+
### Problem statement
44

5-
Your application code is written in C and C++. It uses the *application programming interfaces* (APIs) that Mbed OS provides. These APIs allow your code to work on different microcontrollers in a uniform way. This reduces the challenges of getting started with Arm-based microcontrollers and integrating large software projects.
5+
Writing software for deeply embedded or connected devices continues to increase in complexity. This complexity is commonly known as “The Internet of Things” (IoT) and is changing the expectations of device capabilities, be it security, robustness, power consumption or device management. Arm Mbed OS is a free, open-source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the capabilities needed to develop a connected product based on an Arm Cortex-M microcontroller, including security, wired and wireless connectivity, a preemptive RTOS kernel and peripheral drivers for sensors and I/O devices.
66

7-
#### Where to start
7+
### Promise
88

9-
<span class="tips">If you're working on Windows, you might need to [install a serial driver](/docs/development/tutorials/windows-serial-driver.html).
9+
As software integration complexities increase and demands on the time to market decrease for embedded devices, the ability to prototype and prove concepts quickly is crucial. Mbed OS uses USB drag and drop programming to allow you to rapidly protoype without expensive debug hardware. Basing development efforts on an operating system that is well tested and released on a regular cadence (quarterly [feature releases](https://os.mbed.com/releases/) and biweekly patch releases) allows you to focus on the application and differentiation rather than investing software integration and tooling compatibilities. This effectively multiplies team effectiveness by picking up bug fixes and new target support in patch releases while getting new capabilities in feature releases. That, combined with low power and a small footprint, makes moving from concept to production very low risk.
1010

11-
The easiest way to work with Mbed OS is using one of our development tools. We've set up an example, [Blinky](/docs/development/tutorials/your-first-program.html), that you can try on each of the tools. Blinky teaches you to build and run an application on your board.
11+
### Principles
1212

13-
Once you know how to build an existing application, it's time to learn [how to write your own applications](/docs/development/reference/index.html).
13+
Mbed OS is an open-source operating system actively developed by Arm, in partnership with over 60 partners and the Arm Mbed community of over 340,000 developers throughout the world. Everyone is encouraged to contribute and make Mbed OS even better, and our community has contributed to many of our components and projects. Our developer community is a valuable part of Mbed OS and adds an important layer of transparency.
1414

15-
##### Development tools
15+
Because we release Mbed OS under an Apache 2.0 license, you can confidently use it in commercial and personal projects. You can ask questions about hardware availability and software compatibility on the developer website, forums and question pages. You can contribute software issues and fixes to the development repository on GitHub. For private inquiries that may not be suitable to share in public, please email [support]([email protected]). You can find more information about licensing and how to contribute, as well as our code of conduct, on our [contributing page](https://os.mbed.com/contributing/).
1616

17-
- Our offline development tool is [Arm Mbed CLI](/docs/development/tools/arm-mbed-cli.html), a command-line tool. This requires having a toolchain installed on your computer.
18-
- The [Arm Mbed Online Compiler](/docs/development/tools/arm-online-compiler.html) lets you write and build applications using a web browser.
19-
- If you're working with third party tools, look at [exporting instructions for the most popular ones](/docs/development/tools/exporting.html).
17+
### Architecture
2018

21-
##### Communicating with and monitoring your board
19+
Three principals form the basis of Mbed OS: modular, secure and connected. With a large contributor base, it’s important to have visibility of where and how changes should be made.
2220

23-
You can [monitor and control an Mbed board](/docs/development/tutorials/serial-comm.html) to help you debug and test your applications.
21+
#### Modular
2422

25-
<span class="tips">**Tip:** Learn more about debugging in the [debugging applications section](/docs/development/tutorials/debugging-applications.html).</span>
23+
The Hardware Abstraction Layer (HAL) allows support for the basic and most common parts of a microcontroller, such as timers, analog and digital interfaces. A HAL is the foundation of allowing applications to be written against a common set of application programming interfaces (APIs) and where to start from when adding support for a new target.
2624

27-
#### How to continue
25+
With the HAL, we can create new features on feature branches, and silicon Partners can then port them to Mbed Enabled development boards. Please see more information about HAL APIs in our documentation about [contributing targets](/docs/development/reference/porting-targets.html).
2826

29-
When you've started writing applications using your selected development tool:
27+
Mbed OS has an RTOS core based on the widely used open-source CMSIS-RTOS RTX. Because of this, Mbed OS supports deterministic, multithreaded, real-time software execution. The RTOS primitives are always available, allowing drivers and applications to rely on features, such as threads, semaphores and mutexes.
3028

31-
- Learn about [collaborative work and version control](/docs/development/tools/collab-online-comp.html).
32-
- Try one of the [tutorials](/docs/development/tutorials/index.html), which cover concepts such as debugging and memory tracing.
33-
- Ask questions and give advice on the [forum](https://os.mbed.com/forum/).
29+
Other features include more complex software components, such as file systems and networking stacks, which may require complex synchronization primitives to ensure deterministic and safe execution or might have multiple compatible drivers. The modular design allows application level composition of storage systems, for instance where the block level storage options vary and are application dependent.
3430

35-
#### Contributing to Mbed OS
31+
The modular design of Mbed OS means your device automatically includes necessary libraries. It also includes driver support for standard MCU peripherals, such as I2C, serial and SPI. This allows you to concentrate on writing application code.
3632

37-
If you want to contribute to the `mbed-os` codebase, please see [the contribution section](/docs/development/reference/contributing.html).
33+
#### Secure
3834

39-
You can find past releases and the current release on [GitHub](https://github.com/ARMmbed/mbed-os/releases/).
35+
We implement our security strategy throughout the device life cycle. Mbed OS security begin with isolated security domains and continue through secure communication. For example, with Mbed OS, you can include SSL and TLS in your projects for secure communications.
4036

41-
#### Porting to Mbed OS
37+
#### Connected
4238

43-
Our full contributing guide is still being written. For now, we have:
39+
Mbed OS supports many connectivity options. These include [network sockets](/docs/development/reference/network-socket.html), [Bluetooth](/docs/development/reference/bluetooth.html) and [LoRaWAN](/docs/development/reference/lorawan.html). They also include network interfaces, such as Ethernet, Wi-Fi and 6LoWPAN. Mbed OS is also a Thread-certified component.
4440

45-
- A guide to [contributing targets](/docs/development/reference/contributing-target.html).
46-
- Information about the [tools you need to contribute targets](/docs/development/reference/contributing-tools.html).
47-
- APIs about [storage](/docs/development/reference/contributing-storage.html) and [connectivity](/docs/development/reference/contributing-connectivity.html) in relation to porting.
48-
49-
## How Mbed works
50-
51-
The Arm Mbed hardware architecture is designed to make sure you have all the tools and utilities to be productive. Most boards have an integrated debug circuit that assists development by programming the device, logging program execution and giving access to the debug access port. Here is how it works.
41+
For each connectivity option, Mbed OS provides API class references, reference material and examples.
5242

5343
#### Architecture diagram
5444

5545
This is the basic architecture of an Mbed board:
5646

5747
<span class="images">![](https://s3-us-west-2.amazonaws.com/mbed-os-docs-images/MbedOS_002.png)<span>A sketch of a typical Mbed board's hardware architecture</span></span>
5848

59-
#### How programming works
60-
61-
There are two options:
62-
63-
1. When you plug an Mbed Enabled board to your PC using USB, it appears as a USB flash disk. The Mbed interface presents this small disk. It allows you to save Arm microcontroller binaries you want to run directly on to the board, without drivers.
64-
2. The same USB connection exposes a debug protocol such as CMSIS-DAP. This enables lots of IDEs to program and debug the device.
65-
66-
##### How USB serial works
67-
68-
The Arm Mbed interface also presents a USB serial/com interface. This is basically a UART-USB bridge, and it connects to the interface's UART. So if you send characters out of the target board's UART, the Arm Mbed interface will read them and transfer them over the USB link. When you `printf()`, it is just sending characters to UART. This means that if you make your own PCB, these characters will still appear on UART.
69-
70-
##### Notes
71-
72-
The `.bin` files the Mbed microcontroller accepts are standard raw binaries. Use any compiler you like to generate them. As the separate interface manages programming over JTAG or SWD, you have unlimited control of the target microcontroller. You really are just loading on a raw binary; this means you can build your own PCB using the same target microcontroller, and the same program binary will run on that.
49+
### Compatibility
7350

74-
#### The Arm Mbed interface
51+
Mbed OS [includes the tools](/docs/development/tools/index.html) needed for developers of all skill levels. Many experienced developers prefer to work offline using Arm Mbed CLI, our offline command-line tool based on Python. This requires having a toolchain installed on your computer. You can use Mbed CLI to build projects using out three supported toolchains: Arm Compiler 6, GCC and IAR. You can also [export projects](/docs/development/tools/exporting.html) for use in other IDEs, such as Keil MDK.
7552

76-
You can find more information about the Mbed interface and the circuits on which it runs in the [HDK reference manual](/docs/development/reference/contributing-tools.html#arm-mbed-hdk) or on the [DAPLink page](/docs/development/tools/daplink.html). The HDK includes reference circuits you can use to create your own boards, and DAPLink is the firmware that runs on these circuits.
53+
Developers who do not have a dedicated desktop setup or prefer to work online use the Arm Mbed Online Compiler, our online development tool, which lets you write and build applications using a web browser. This online IDE requires no setup.
7754

78-
#### Connectivity
55+
Other tools included as part of Mbed OS work well for developers of all skill sets. For example, you can use our debugging tools, DAPLink and pyOCD, to program and debug their many devices. Mbed OS also includes build tools and supported toolchains and the C libraries of each supported toolchain, including implementation of thread safety support. At the end of the development cycle, you can us the Mbed OS validation tools to test your project. All of these tools make it easy for you to use Mbed OS for your projects throughout the development cycle.
7956

80-
The best representation of the connectivity of the Mbed interface is the same diagram we showed above.
57+
### Conclusion
8158

82-
The Mbed interface:
59+
Mbed OS is a secure, connected, production-ready operating system with a modular design that includes all the tools you need, whatever your skillset. For businesses entering the IoT space requiring an open source industry agnostic OS solution. Using our heritage in architecture, we have built our device software to create a forward-looking yet robust chip to cloud solution.
8360

84-
- Provides a USB connection to the host computer, which exposes a Mass Storage (flash disk) and a USB serial port.
85-
- Has an SWD or JTAG connection to the target, so it can program the target flash. You can also use this for debugging.
86-
- A physical UART connection exists between the target and the interface, which is relayed over the interface's USB serial port.
61+
This operating system is the core of Arm's Mbed IoT Device Platform. By using Mbed OS, you can create application code that remains clean and portable while taking advantage of security and communication. Use our quick start guide to get started with Mbed OS today.

docs/introduction/release_process.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
## How We Release Arm Mbed OS
2+
3+
The three types of Arm Mbed OS releases are major, feature and patch.
4+
5+
### Major release
6+
7+
Major releases happen infrequently and indicate a possible change in the structure of the OS. In major releases, the first number after "Mbed OS" changes. For example, Arm Mbed OS 5.0 was a major release.
8+
9+
They can include:
10+
11+
- Incompatible functionality changes (including redesign, removal and new additions).
12+
- Removal of deprecated functionality.
13+
14+
### Feature release
15+
16+
Feature releases occur once a quarter. As their name suggests, feature releases introduce new features to the code base. Unlike major releases, feature releases are backward compatible (source compatible). The second digit in the release number indicates the feature release. For example, Mbed OS 5.1.0 indicates major version 5, feature version 1.
17+
18+
They can include:
19+
20+
- New Mbed OS features.
21+
- New functionality (including the addition of functions, methods and classes).
22+
- Large refactors.
23+
- Deprecation of functionality (with an alternative functionality provided).
24+
- Configuration changes.
25+
26+
### Patch release
27+
28+
Patch releases occur every two weeks. They are also backward compatible (source compatible). The last digit in the release number indicates the patch release. In Mbed OS 5.2.3, `3` shows the patch release is the third release in Mbed 5.2.
29+
30+
They can include:
31+
32+
- Bug fixes.
33+
- Improvements to existing functionality (including target driver updates and implementation-specific improvements that don't change code flow or behavior).
34+
- New target support.
35+
- New tests.
36+
37+
Binary compatibility is not guaranteed with any release.
38+
39+
### The release process
40+
41+
Every release goes through a rigorous review and testing process. We stage changes to the `release-candidate` branch in the `mbed-os` repository.
42+
43+
Two weeks before each feature release, we implement a code freeze on the master branch while we produce the new release branch. Once the new branch is created, master is once again available. The release branch then goes into the release testing phase, in which we apply [our testing tools](/docs/development/tools/testing.html). These tests include nightly runs through our continuous integration (CI) processes, as well as out-of-box QA. We also put our examples through this testing process. We apply no new code, except for critical bug fixes found during this period, to the release branch.
44+
45+
For patch releases, code freeze occurs the Thursday before the release. Patch releases also go through exporter tests and nightly CI tests.
46+
47+
After all tests return no errors, we release the latest updates. You can find the most recent release in the `mbed-os` repository with the `latest` tag. A release note accompanies each release. The release notes for major and feature releases are longer and give an overview of the new features. The release notes for the patch releases include only a list of changes and known issues, if applicable. You can find our release notes on [the releases page](https://os.mbed.com/releases/) and on [the blog](https://os.mbed.com/blog/).

docs/introduction/terms.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
**Arm Mbed CLI** - The name of the Arm Mbed [command-line tool](/docs/development/tools/arm-mbed-cli.html), packaged as `mbed-cli`.
1010

11-
**Arm Mbed interface** - The extra chip that sits on all [Mbed Enabled development boards](/docs/development/introduction/index.html). It's what makes the target chip (for example, K64F) look like a USB drive. It usually runs a separate piece of software that generally doesn't change. That software is usually `DAPLink`, `CMSIS-DAP` or `STLink`.
11+
**Arm Mbed interface** - The extra chip that sits on all [Mbed Enabled development boards](index.html). It's what makes the target chip (for example, K64F) look like a USB drive. It usually runs a separate piece of software that generally doesn't change. That software is usually `DAPLink`, `CMSIS-DAP` or `STLink`.
1212

1313
**Arm Mbed Online Compiler** - [Arm’s online tool](/docs/development/tools/arm-online-compiler.html), which you can use to create and compile your code.
1414

@@ -140,7 +140,7 @@
140140

141141
### T
142142

143-
**Target** - See [`board`](/docs/development/introduction/glossary.html#board).
143+
**Target** - See [`board`](glossary.html#board).
144144

145145
**Terminal Application** - [Applications](/docs/development/tutorials/serial-comm.html#using-terminal-applications) that run on your host PC that provide a window where your Mbed board can print and where you can type characters back to your board.
146146

0 commit comments

Comments
 (0)