Skip to content

Commit 1b5477d

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into eksctl
2 parents 65c83a1 + ee8043c commit 1b5477d

126 files changed

Lines changed: 239 additions & 78 deletions

File tree

Some content is hidden

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

content/learning-paths/embedded-and-microcontrollers/tflow_nn_stcube/setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ conda install jupyter pandas pyserial scikit-learn tensorflow matplotlib
4444

4545
Next, you need to program the STM32 `B-L475E-IOT01A2` board to acquire accelerometer data for your neural network model.
4646

47-
The data collection code for this Learning Path is provided, so you can just import the project and program the board using [STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html).
47+
The data collection code for this Learning Path is provided, so you can import the project and program the board using [STM32CubeIDE](https://www.st.com/en/development-tools/stm32cubeide.html).
4848

4949
Download the [zip file](https://github.com/ArmDeveloperEcosystem/arm-learning-paths/blob/main/content/learning-paths/embedded-and-microcontrollers/tflow_nn_stcube/project_files/tf_stm32.zip) and extract it into a `tf_stm32` folder.
5050

content/learning-paths/embedded-and-microcontrollers/tfm/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
title: Get started with Trusted Firmware-M
33

4+
description: Learn how to build and run the reference Trusted Firmware-M tests and example application on Arm Fixed Virtual Platforms for secure microcontroller development.
5+
46
minutes_to_complete: 15
57

68
who_is_this_for: This is an introductory topic for software developers new to Trusted

content/learning-paths/embedded-and-microcontrollers/tfm/tfm.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ myvenv/bin/pip3 install -r trusted-firmware-m/tools/requirements.txt
6565

6666
## Configure and build the TF-M tests
6767

68-
Activate the python environment, navigate to the test suite we want to build and run and set the relevant `cmake` variables to build TF-M and its suite of tests. The `TFM_TOOLCHAIN_FILE` parameter is used to select a toolchain. The build is done in `Debug` mode in order to get progresses and results displayed when they will be executed. All the parameters are defined in the [Trusted Firmware-M documentation](https://tf-m-user-guide.trustedfirmware.org/getting_started/index.html#build-and-run-instructions). For example, to build with Arm GNU Compiler:
68+
Activate the python environment, navigate to the test suite and set the relevant `cmake` variables to build TF-M and its suite of tests. The `TFM_TOOLCHAIN_FILE` parameter is used to select a toolchain. The build is done in `Debug` mode to get progress and results displayed when they are executed. All the parameters are defined in the [Trusted Firmware-M documentation](https://tf-m-user-guide.trustedfirmware.org/getting_started/index.html#build-and-run-instructions). For example, to build with Arm GNU Compiler:
6969

7070
```bash
7171
. myvenv/bin/activate
@@ -92,7 +92,7 @@ On a successful build, the TF-M test executables are created in the `build/tests
9292

9393
## Run the TF-M tests on the Corstone-300 FVP
9494

95-
The tests we have just built can now be run on the Corstone-300 FVP. This is done by providing the following arguments to the FVP:
95+
The tests built can now be run on the Corstone-300 FVP. This is done by providing the following arguments to the FVP:
9696
- `build/tests-spe/bin/bl2.axf` is the MCUBoot bootloader image.
9797
- `build/tests/tfm_s_ns_signed.bin` is the combined signed image for the TF-M secure and non-secure image.
9898
- `@<addr>` indicates where in the Corstone-300 FVP memory the image is loaded. The memory map for the FVP is documented in the [FVP Reference Guide](https://developer.arm.com/documentation/100966/1118/Arm--Corstone-SSE-300-FVP/Memory-map-overview-for-Corstone-SSE-300).
@@ -174,7 +174,7 @@ cmake -S trusted-firmware-m -B build/spe \
174174
cmake --build build/spe -- install
175175
```
176176

177-
The `CMakeLists.txt` for the TF-M example application requires a minor fix for the build to go smoothly. In `tf-m-extras/examples/tf-m-example-ns-app/CMakeLists.txt`, move command `add_subdirectory(${CONFIG_SPE_PATH} ${CMAKE_BINARY_DIR}/spe)` (at line 36) *after* the next statement (`add_executable(tfm_ns ...)` ). We can now build the application with:
177+
The `CMakeLists.txt` for the TF-M example application requires a minor fix for the build to go smoothly. In `tf-m-extras/examples/tf-m-example-ns-app/CMakeLists.txt`, move command `add_subdirectory(${CONFIG_SPE_PATH} ${CMAKE_BINARY_DIR}/spe)` (at line 36) *after* the next statement (`add_executable(tfm_ns ...)` ). Build the application with:
178178

179179
```bash
180180
cmake -S tf-m-extras/examples/tf-m-example-ns-app -B build/example \
@@ -183,7 +183,7 @@ cmake -S tf-m-extras/examples/tf-m-example-ns-app -B build/example \
183183
cmake --build build/example
184184
```
185185

186-
To run the image on the FVP, the command line is very similar to the one we used with the tests, we only have to change the paths to the example application images:
186+
To run the image on the FVP, the command line is very similar to the one used with the tests, with changes to the paths for the example application images:
187187

188188
```console
189189
FVP_Corstone_SSE-300_Ethos-U55 \

content/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
title: "Edge AI on Arm: PyTorch and ExecuTorch rock-paper-scissors"
33

4+
description: Learn how to train a CNN image classification model using PyTorch, convert it to ExecuTorch format, and run it as an interactive mini-game on Arm-based edge devices.
5+
46
minutes_to_complete: 60
57

68
who_is_this_for: This is an introductory topic for machine learning developers who want to deploy TinyML models on Arm-based edge devices using PyTorch and ExecuTorch.

content/learning-paths/embedded-and-microcontrollers/trustzone_nxp_lpc/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
title: Get started with TrustZone on NXP LPCXpresso55S69
33

4+
description: Learn how to install Keil MDK Tools, run a TrustZone hello world example on the NXP LPCXpresso55S69 board, and understand security state switching and secure function calls.
5+
46
minutes_to_complete: 20
57

68
who_is_this_for: This is an introductory topic for software developers new to using TrustZone.

content/learning-paths/embedded-and-microcontrollers/universal-sbc-chassis/_index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
title: Build a Universal Single Board Computer Rack Mount System
33

4+
description: Learn how to acquire and print materials, assemble a universal SBC rack mount system in a 4U chassis, and install single board computers in the racks using 3D-printed parts.
5+
46
who_is_this_for: This is an introductory topic for software developers and hobbyists who want to build a rack mount system for housing single board computers.
57

68
minutes_to_complete: 120

content/learning-paths/embedded-and-microcontrollers/universal-sbc-chassis/bay-assembly.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ layout: "learningpathall"
1111

1212
Assemble the bays using the steps below.
1313

14-
1. Wash the grease off the threaded rods with soap and hot water. They will almost certainly arrive coated in grease, and these are stainless steel parts being used in a dry environment. Leaving it on will just end up with the whole project being greasy.
14+
1. Wash the grease off the threaded rods with soap and hot water. They will almost certainly arrive coated in grease, and these are stainless steel parts being used in a dry environment. Leaving it on will end up with the whole project being greasy.
1515

1616
2. Cut each rod to 405 mm long. If you haven’t done this before [this is the best way to do so that I’ve used if you’re using a hacksaw](https://www.familyhandyman.com/article/cutting-threaded-rod/). I recommend a chop saw, however.
1717

@@ -49,6 +49,6 @@ Assemble the bays using the steps below.
4949

5050
![step 10](./b09.jpg)
5151

52-
11. Drop the unit into the slots on the end pieces and tighten the wing nuts until they just firmly press into the end pieces. Dont over tighten to the point of the rods bowing.
52+
11. Drop the unit into the slots on the end pieces and tighten the wing nuts until they firmly press into the end pieces. Don't over tighten to the point of the rods bowing.
5353

5454
![step 11](./b10.jpg)

content/learning-paths/embedded-and-microcontrollers/uv_debug/2_basics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,5 +197,5 @@ If you put a RAM address as the expression with no value, the next read and/or w
197197
- The instruction causing the break is probably a few instructions before this one in the execution stream.
198198
- To edit a watchpoint, double-click on it in the **Breakpoints** window and its information will be dropped down into the configuration area. Clicking on **Define** will create another watchpoint. You should delete the old one by highlighting it and click on Kill Selected or use the following tip.
199199
- The checkbox beside the expression in **Current Breakpoints:** as shown above allows you to temporarily unselect or disable a watchpoint without deleting it.
200-
- You can create a watchpoint with a raw address and no variable value. This is useful for detecting stack overruns. Physical addresses can be entered as `*((unsigned long *)0x20000000)`. Or simply enter the address as shown above.
200+
- You can create a watchpoint with a raw address and no variable value. This is useful for detecting stack overruns. Physical addresses can be entered as `*((unsigned long *)0x20000000)`. Or enter the address as shown above.
201201
{{% /notice %}}

content/learning-paths/embedded-and-microcontrollers/uv_debug/3_event_recorder.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ layout: "learningpathall"
3030
```c
3131
#include "EventRecorder.h"
3232
```
33-
10. In the `main()` function (near line 39), just after `SystemCoreClockUpdate();`, add these lines:
33+
10. In the `main()` function (near line 39), after `SystemCoreClockUpdate();`, add these lines:
3434
```c
3535
EventRecorderInitialize(EventRecordAll,1);
3636
EventRecorderStart();
@@ -44,7 +44,7 @@ Now, create a global variable named `counter` whose value will be printed on **D
4444
```c
4545
uint32_t counter = 0;
4646
```
47-
2. Add these two lines just after the `Delay(1000)` statement at line 46:
47+
2. Add these two lines after the `Delay(1000)` statement at line 46:
4848
```c
4949
counter++;
5050
if (counter > 0x0F) counter = 0;
@@ -53,7 +53,7 @@ Now, create a global variable named `counter` whose value will be printed on **D
5353
```c
5454
#include "stdio.h"
5555
```
56-
2. Near line 48, just after the statement `if (counter > 0x0F…`), add:
56+
2. Near line 48, after the statement `if (counter > 0x0F…`), add:
5757
```c
5858
printf("Hello %d\n", counter);
5959
```

content/learning-paths/embedded-and-microcontrollers/uv_debug/4_swv.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ layout: "learningpathall"
2222
1. Global variables.
2323
2. Static variables.
2424
3. Structures.
25-
4. Can see Peripheral registers – just read or write to them. The same is true for memory locations.
25+
4. Can see Peripheral registers – read or write to them. The same is true for memory locations.
2626
5. Can see executed instructions. SWV only samples them. Use ETM to capture all instructions executed.
2727
6. CPU counters. Folded instructions, extra cycles and interrupt overhead.
2828

2929
#### What types of data can the Serial Wire Viewer not display?
3030

31-
1. Cant see local variables (just make them global or static).
31+
1. Can't see local variables (make them global or static).
3232
2. Can’t see register operations. PC Samples records some of the instructions but not the data values.
3333
3. SWV can’t see DMA transfers. This is because by definition these transfers bypass the CPU. SWV and ETM can only see CPU actions.
3434

0 commit comments

Comments
 (0)