You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: bootloader/README.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -9,14 +9,14 @@ Integrating a BLE stack for the OTA functionality would have used to much memory
9
9
10
10
When it is run, this bootloader looks in the SPI flash memory if a new firmware is available. It there is one, it *swaps* the current firmware with the new one (the new one is copied in the main flash memory, and the current one is copied in the SPI flash memory) and run the new one. If the new one fails to run properly, the bootloader is able to revert to the old one and mark the new one as not working.
11
11
12
-
As this bootloader does not provide any OTA capability, it is not able to actually download a new version of the application. Providing OTA functionality is thus the responsability of the application firmware.
12
+
As this bootloader does not provide any OTA capability, it is not able to actually download a new version of the application. Providing OTA functionality is thus the responsibility of the application firmware.
13
13
14
14
# About MCUBoot
15
15
MCUBoot is run at boot time. In normal operation, it just jumps to the reset handler of the application firmware to run it. Once the application firmware is running, MCUBoot does not run at all.
But MCUBoot does much more than that : it can upgrade the firmware that is currently running by a new one, and it is also able to revert to the previous version of the firmware in case the new one does not run propertly.
19
+
But MCUBoot does much more than that : it can upgrade the firmware that is currently running by a new one, and it is also able to revert to the previous version of the firmware in case the new one does not run properly.
20
20
21
21
To do this, it uses 2 memory 'slots' :
22
22
-**The primary slot** : it contains the current firmware, the one that will be executed by MCUBoot
@@ -40,7 +40,7 @@ This chapter describes degraded cases that are handled by our bootloader and tho
Data got corrupted during file transfer | [OK] Application firmware does a CRC check before applying the update, and does not proceed if it fails. | N/A
43
-
New firmware does not run at all (bad file) (1) | [NOK] MCU executes unknown instructions and will most likely end up in an infinite loop or freeze in an error handler. The bootloader does not run, it can do nothing, the MCU is stucked until next reset | [OK] The bootloader starts the watchdog just before running the new firmware. This way, the watchdog will reset the MCU after ~7s because the firmware does not refresh it. Bootloader reverts to the previous version of the firmware during the reset.
43
+
New firmware does not run at all (bad file) (1) | [NOK] MCU executes unknown instructions and will most likely end up in an infinite loop or freeze in an error handler. The bootloader does not run, it can do nothing, the MCU is stuck until next reset | [OK] The bootloader starts the watchdog just before running the new firmware. This way, the watchdog will reset the MCU after ~7s because the firmware does not refresh it. Bootloader reverts to the previous version of the firmware during the reset.
44
44
New firmware runs, does not set the valid bit and does not refresh the watchdog | [NOK] The new firmware runs until the next reset. The bootloader will be able to revert to the previous firmware only during the next reset. If the new firmware does not run properly and does not reset, the bootloader can do nothing until the next reset | [OK] The bootloader starts the watchdog just before running the new firmware. This way, the watchdog will reset the MCU after ~7s because the firmware does not refresh it. Bootloader reverts to the previous version of the firmware during the reset.
45
45
New firmware does not run properly, does not set the valid bit but refreshes the watchdog | [NOK] The bootloader will be able to revert to the previous firmware only during the next reset. If the new firmware does not run properly and does not reset, the bootloader can do nothing until the next reset | [~] Wait for the battery to drain. The CPU will reset the next time the device is charged and will be able to rollback to the previous version.
46
46
New firmware does not run properly but sets the valid bit and refreshes the watchdog | [NOK] The bootloader won't revert to the previous version because the valid flag is set | [~] Wait for the battery to drain. The CPU will reset the next time the device is charged. Then, the bootloader must provide a way for the user to force the rollback to the previous version
Copy file name to clipboardexpand all lines: cmake-nRF5x/readme.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -7,19 +7,19 @@ Cmake script for projects targeting Nordic Semiconductor nRF5x series devices us
7
7
The script makes use of the following tools:
8
8
9
9
- nRF5x SDK by Nordic Semiconductor - SoC specific drivers and libraries (also includes a lot of examples)
10
-
- JLink by Segger - interface software for the JLink familiy of programmers
10
+
- JLink by Segger - interface software for the JLink family of programmers
11
11
- nrfjprog by Nordic Semiconductor - Wrapper utility around JLink
12
12
- arm-non-eabi-gcc by ARM and the GCC Team - compiler toolchain for embedded (= bare metal) ARM chips
13
13
14
14
# Setup
15
15
16
16
1. Download this repo (or add as submodule) to the directory `cmake-nRF5x` in your project
17
17
18
-
1. Search the SDK `example` directory for a `sdk_config.h`, `main.c` and a linker script (normally named `<project_name>_gcc_<chip familly>.ld`) that fits your chip and project needs.
18
+
1. Search the SDK `example` directory for a `sdk_config.h`, `main.c` and a linker script (normally named `<project_name>_gcc_<chip family>.ld`) that fits your chip and project needs.
19
19
20
20
1. Copy the `sdk_config.h` and the project `main.c` into a new directory `src`. Modify them as required for your project.
21
21
22
-
1. Copy the linker script into the root of your project. Rename it to just `gcc_<chip familly>.ld` For example:
22
+
1. Copy the linker script into the root of your project. Rename it to just `gcc_<chip family>.ld` For example:
Copy file name to clipboardexpand all lines: doc/MemoryAnalysis.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Puncover is really easy to install:
60
60
- Launch a browser at http://localhost:5000/
61
61
62
62
### Analysis
63
-
Using the MAP file and tools, we can easily see what symbols are using most of the flash memory. In this case, unsuprisingly, fonts and graphics are the largest use of flash memory.
63
+
Using the MAP file and tools, we can easily see what symbols are using most of the flash memory. In this case, unsurprisingly, fonts and graphics are the largest use of flash memory.
All included icons are from pure-maps, which provides the actual routing from the client. The icon names ultimately come from the mapbox project "direction-icons", See https://github.com/rinigus/pure-maps/tree/master/qml/icons/navigation See the end of this document for the full lsit of supported icon names.
16
+
All included icons are from pure-maps, which provides the actual routing from the client. The icon names ultimately come from the mapbox project "direction-icons", See https://github.com/rinigus/pure-maps/tree/master/qml/icons/navigation See the end of this document for the full list of supported icon names.
Copy file name to clipboardexpand all lines: doc/PinetimeStubWithNrf52DK.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
# Build a stub for PineTime using NRF52-DK
2
-
[NRF52-DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK) is the official developpment kit for the NRF52832 SoC from Nordic Semiconductor used in the PineTime.
2
+
[NRF52-DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK) is the official development kit for the NRF52832 SoC from Nordic Semiconductor used in the PineTime.
3
3
4
4
This development kit can be very useful for PineTime development:
5
5
* You can use its embedded JLink SWD programmer/debugger to program and debug your code on the PineTime
Copy file name to clipboardexpand all lines: doc/ble.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ When starting, the firmware starts BLE advertising. It sends small messages that
44
44
45
45
A companion application (running on a PC, Raspberry Pi, smartphone, etc.) which receives this advertising packet can request a connection to the device. This connection procedure allows the 2 devices to negotiate communication parameters, security keys, etc.
46
46
47
-
When the connection is established, the PineTime will try to discover services running on the companion application. For now **CTS** (**C**urrent **T**ime **S**ervice) and **ANS** (**A**lert **N**otification**S**ervice) are supported.
47
+
When the connection is established, the PineTime will try to discover services running on the companion application. For now **CTS** (**C**urrent **T**ime **S**ervice) and **ANS** (**A**lert **N**notification**S**ervice) are supported.
48
48
49
49
If **CTS** is detected, it'll request the current time to the companion application. If **ANS** is detected, it will listen to new notifications coming from the companion application.
50
50
@@ -146,14 +146,14 @@ The new alert characteristic allows sending new notifications to InfiniTime. It
146
146
For example, here is what a normal notification looks like in Golang (language of `itd`):
147
147
148
148
```go
149
-
// \x00 is the category for simple alert, and there is one new notifcation, hence \x01.
149
+
// \x00 is the category for simple alert, and there is one new notification, hence \x01.
150
150
"\x00\x01\x00Test Title\x00Test Body"
151
151
```
152
152
153
153
A call notification looks like so:
154
154
155
155
```go
156
-
// \x03 is the category for calls, and there is one new call notifcation, hence \x01.
156
+
// \x03 is the category for calls, and there is one new call notification, hence \x01.
Copy file name to clipboardexpand all lines: doc/branches.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ The project is based on 2 main branches:
5
5
-**master** : this branch is always ready to be deployed. It means that at any time, we should be able to build the branch and release a new version of the application.
6
6
-**develop** : this branch contains the latest development that will be integrated in the next release once it's considered as stable.
7
7
8
-
New features should be implemented in **feature branches** created from **develop**. When the feature is ready, a pull-request is created and it'll be merge into **develop** when it is succesfully reviewed and accepted.
8
+
New features should be implemented in **feature branches** created from **develop**. When the feature is ready, a pull-request is created and it'll be merge into **develop** when it is successfully reviewed and accepted.
9
9
10
10
To release a new version of the application, when develop is considered stable, a **release** branch is created from **develop**. This can be considered as a *release candidate* branch. When everything is OK, this release branch is merged into **master** and the release is generated (a tag is applied to git, the release note is finalized, binaries are built,...) from **master**.
Copy file name to clipboardexpand all lines: doc/buildAndProgram.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ By default, this variable is set to *Release*. It compiles the code with size an
47
47
The *Debug* mode disables all optimizations, which makes the code easier to debug. However, the binary size will likely be too big to fit in the internal flash memory. If you want to build and debug a *Debug* binary, you'll need to disable some parts of the code. For example, the icons forthe **Navigation** app use a lot of memory space. You can comment the content of `m_iconMap`in the [Navigation](https://github.com/InfiniTimeOrg/InfiniTime/blob/develop/src/displayapp/screens/Navigation.h#L148) application to free some memory.
48
48
49
49
####(**) Note about **BUILD_DFU**:
50
-
DFU files are the files you'll need to install your build of InfiniTime using OTA (over-the-air) mecanism. To generate the DFU file, the Python tool [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil) is needed on your system. Check that this tool is properly installed before enabling this option.
50
+
DFU files are the files you'll need to install your build of InfiniTime using OTA (over-the-air) mechanism. To generate the DFU file, the Python tool [adafruit-nrfutil](https://github.com/adafruit/Adafruit_nRF52_nrfutil) is needed on your system. Check that this tool is properly installed before enabling this option.
0 commit comments