Skip to content

Commit 8d2481a

Browse files
Docs fixes (#1467)
* update intro section to refer to new BLE optimiztion section, correct spelling (optimise/optimize etc.) in various places for consitency (including a filename change), and minor improvements to wording in new BLE topics. * correct filepath * correct link / link text
1 parent 967069f commit 8d2481a

File tree

9 files changed

+26
-23
lines changed

9 files changed

+26
-23
lines changed

docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@
834834
"path": "docs/api/connectivity/bluetooth/GattClient.md"
835835
},
836836
{
837-
"path": "docs/api/connectivity/bluetooth/Optimising_for_performance.md"
837+
"path": "docs/api/connectivity/bluetooth/Optimizing_for_performance.md"
838838
}
839839
]
840840
},
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# BLE Services
22

3-
Mbed OS BLE implementation isn't bundled with any BLE services. Services are in an external repository. Please go to:
4-
- [ble-services](https://github.com/ARMmbed/mbed-os-experimental-ble-services)
3+
Mbed OS BLE implementation isn't bundled with any BLE services. Services are however provided in this external repository:
54

6-
This is a community led effort to provide implementations of services both from the official BLE spec and user defined
7-
ones. It contains libraries which you can import into your project to use the services. Please refer to documentation
8-
inside the repository:
9-
- [README.md](https://github.com/ARMmbed/mbed-os-experimental-ble-services/blob/main/README.md)
5+
- [Experimental services for Mbed OS BLE](https://github.com/ARMmbed/mbed-os-experimental-ble-services)
6+
7+
This is a community led effort to provide implementations of services both from the official BLE specification and user defined ones. It contains libraries which you can import into your project to use the services. For details see the documentation in the repository:
8+
9+
- [README.md](https://github.com/ARMmbed/mbed-os-experimental-ble-services/blob/main/README.md)

docs/api/connectivity/bluetooth/Optimising_for_performance.md renamed to docs/api/connectivity/bluetooth/Optimizing_for_performance.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Optimising application for throughput and power consumption
1+
# Optimizing applications for throughput and power consumption
22

33
BLE (Bluetooth Low Energy) devices are usually battery powered so performance might mean different things in different
4-
applications. You will need to decide what is more important in your application - minimising power consumption on one
5-
or both sides of the communication or maximising throughput and/or latency. Some optimisation steps can in fact achieve
4+
applications. You will need to decide what is more important in your application - minimizing power consumption on one
5+
or both sides of the communication or maximizing throughput and/or latency. Some optimization steps can in fact achieve
66
both.
77

88
This guide will discuss some trade-offs that should be considered and best practices that improve performance on all
@@ -118,16 +118,18 @@ will only have to turn on the radio when the expected packet is due.
118118

119119
## Increasing throughput
120120

121+
The following approaches can help to increase throughput, but you might need to consider whether power consumption will be adversely affected in your application.
122+
121123
### Modulation schemes
122124

123125
Depending on controller support different modulation schemes are available in BLE through `setPreferredPhys()` and
124126
`setPhy()`. While the coded PHY will increase reliability in noisy environments and increase range at the cost of
125-
power consumption, 2M PHY will increase the throughput saving power ber bit. If both devices support it and the signal
126-
quality is good then this is recommended to be enabled.
127+
power consumption, 2M PHY will increase the throughput saving power per bit. If both devices support it and the signal
128+
quality is good then this is recommended to be enabled.
127129

128130
### Data length and ATT_MTU
129131

130-
Packet overhead strongly affects throughput. Newer controllers allow you to negotiate bigger MTUs thus decreasing the
132+
Packet overhead strongly affects throughput. Newer controllers allow you to negotiate bigger MTUs thus decreasing the
131133
fragmentation overhead.
132134

133135
There are two separate MTUs to consider: the `ATT_MTU` (which affects ATT protocol operations) and data length extension
@@ -149,7 +151,7 @@ retransmissions (this is only related to data length, ATT_MTU does not affect th
149151
### ATT protocol
150152

151153
GATT client writes and GATT server updates come in two versions - with and without confirmation. Requiring confirmations
152-
limits the throughput severely so to maximise throughput you can move reliability up from the stack to your application.
154+
limits the throughput severely so to maximize throughput you can move reliability up from the stack to your application.
153155
Without confirmations more than a single Peripheral <=> Central data exchange can be made per connection event. With
154156
confirmations, the connection event ends when the peripheral replies as it needs to prepare the acknowledgement which
155157
will be sent possibly in the next event.
@@ -158,18 +160,18 @@ will be sent possibly in the next event.
158160

159161
If you're not constrained by battery power it might be tempting to use maximum/minimum values where possible.
160162
Advertising at maximum frequency and scanning continuously will speed up connecting. Setting intervals on connections
161-
will minimise latency and maximise number of connection events.
163+
will minimize latency and maximize number of connection events.
162164

163165
One key thing to consider when setting the connection interval low is that you are creating a boundary between which a
164166
sequence of packets must fit. This means that the last transfer must end before the next connection event starts
165167
(plus 150us of inter packet space). This dead time may become significant if the connection interval is short and packet
166-
length is long.
168+
length is long.
167169

168170
The connection interval shouldn't be shorter than what your data requires in terms of latency.
169171

170172
# Test and measure
171173

172-
Due to complexity of the stack the only reliable way to truly maximise performance is to test your application with
174+
Due to complexity of the stack the only reliable way to truly maximize performance is to test your application with
173175
representative data and measure the throughput and power usage. It's important to keep in mind that tweaking
174176
parameters by trial and error and fine-tuning them will only be reliable for sequential operations on known stacks.
175177

docs/api/connectivity/networksocket/CellularNonIPSocket.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ You can request Control Plane optimization mode either with CellularDevice's [`c
1919
"name": "cellular",
2020
"config": {
2121
"control-plane-opt": {
22-
"help": "Enables control plane CIoT EPS optimisation",
22+
"help": "Enables control plane CIoT EPS optimization",
2323
"value": true
2424
}
2525
}

docs/bare_metal/mbed2_porting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ If you haven't used Greentea before, [you can learn more in our documentation](.
146146
147147
Please ignore tests with similar errors.
148148
149-
Further optimisations for targets with small flash memories:
149+
Further optimizations for targets with small flash memories:
150150
- Append `--profile release` to the command above. Use of the release profile helps keep some tests within the size limit.
151151
- Save additional memory by using a [minimal console](https://github.com/ARMmbed/mbed-os-example-blinky-baremetal#using-a-minimal-console) to remove file handling functionality from the system I/O retarget code.
152152

docs/bare_metal/using_bare_metal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ To create the application using Mbed CLI:
4242
4343
The `mbed_app.json` file specifies which **profile** to use (`"requires": ["bare-metal"]`) and which **C library** to use (`"target.c_lib": "small"`).
4444
45-
This example uses `"target.c_lib": "small"` (small C library). This means your application will use an optimised version of the C library with lower memory footprint. For more details, see [Using small C libraries in Mbed OS bare metal](../bare-metal/using-small-c-libraries.html).
45+
This example uses `"target.c_lib": "small"` (small C library). This means your application will use an optimized version of the C library with lower memory footprint. For more details, see [Using small C libraries in Mbed OS bare metal](../bare-metal/using-small-c-libraries.html).
4646
4747
## 2. Adding APIs
4848

docs/introduction/introduction.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The Mbed OS source code is available on [GitHub](https://github.com/ARMmbed/mbed
88

99
The **full profile** of Mbed OS is an RTOS (it includes [Keil RTX](https://www2.keil.com/mdk5/cmsis/rtx) and all RTOS APIs), so it supports deterministic, multithreaded, real-time software execution. The RTOS primitives are always available, allowing drivers and applications to rely on threads, semaphores, mutexes and other RTOS features. It also includes all APIs by default, although you can remove unused ones at build time.
1010

11-
The **bare metal profile** doesn't include Keil RTX and is therefore not an RTOS - it is designed for applications that do not require complex thread management. It is also designed for constrained devices, and therefore focuses on minimising the size of the final application: by default, it includes only the smallest possible set of APIs, to which you can manually add APIs that your application requires. The bare metal profile can use the small C libraries (which are not thread safe) to further minimise the size of the application. Mbed 2 users who want to move to Mbed OS 6 should use the bare metal profile.
11+
The **bare metal profile** doesn't include Keil RTX and is therefore not an RTOS - it is designed for applications that do not require complex thread management. It is also designed for constrained devices, and therefore focuses on minimizing the size of the final application: by default, it includes only the smallest possible set of APIs, to which you can manually add APIs that your application requires. The bare metal profile can use the small C libraries (which are not thread safe) to further minimize the size of the application. Mbed 2 users who want to move to Mbed OS 6 should use the bare metal profile.
1212

1313
## Licensing
1414

@@ -24,6 +24,7 @@ Our [quick start](../quick-start/index.html) guides show how to build an example
2424

2525
## Recently updated documentation
2626

27+
- A new section about [optimizing for throughput and power consumption](../apis/optimizing-applications-for-throughput-and-power-consumption.html) with Bluetooth Low Energy (BLE). We've also removed old material relating to services which are no longer supported and instead provided links to the [Experimental services for Mbed OS BLE](../apis/ble-services.html) repository.
2728
- We've updated the [unit testing](../debug-test/unit-testing.html) information to reflect changes to the version of CMake used. You will need to update to CMake version 3.19 or above and alter your test code structure.
2829
- A new [Mbed CLI1 to CLI2 migration guide](../build-tools/migration-guide.html).
2930
- A new [tutorial about link time optimization](../apis/link-time-optimization.html).

docs/reference/configuration/rtos-config.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Name: rtos.idle-thread-stack-size
3030
Macro name: MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE
3131
Value: 512 (set by library:rtos)
3232
Name: rtos.idle-thread-stack-size-debug-extra
33-
Description: Additional size to add to the idle thread when code compilation optimisation is disabled
33+
Description: Additional size to add to the idle thread when code compilation optimization is disabled
3434
Defined by: library:rtos
3535
Macro name: MBED_CONF_RTOS_IDLE_THREAD_STACK_SIZE_DEBUG_EXTRA
3636
Value: 128 (set by library:rtos[STM])

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ If you want to contribute, please read our [contribution guide](https://os.mbed.
77
Please open pull requests against either:
88

99
- `development` - this is our development branch.
10-
- `6.2` - this is the latest live version.
10+
- `6.12` - this is the latest live version.
1111

1212
Older version branches probably don't require fixes; please open an issue if you think we're wrong.

0 commit comments

Comments
 (0)