Skip to content

Commit c9d4a98

Browse files
authored
Merge branch 'ArmDeveloperEcosystem:main' into v9_mnn
2 parents 900d08b + 1f98a2b commit c9d4a98

22 files changed

Lines changed: 166 additions & 155 deletions

File tree

assets/contributors.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,5 @@ Asier Arranz,NVIDIA,,asierarranz,,asierarranz.com
118118
Prince Agyeman,Arm,,,,
119119
Parichay Das,,parichaydas,parichaydas,,
120120
Johnny Nunez,NVIDIA,johnnynunez,johnnycano,,
121-
Raymond Lo,NVIDIA,raymondlo84,raymondlo84,,
121+
Raymond Lo,NVIDIA,raymondlo84,raymondlo84,,
122+
Kavya Sri Chennoju,Arm,kavya-chennoju,kavya-sri-chennoju,,

content/install-guides/codex-cli.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ To analyze a local codebase, use a `-v` argument to mount a volume to the Arm MC
195195

196196
Replace the path `/Users/yourname01/yourlocalcodebase` with the path to your local codebase.
197197

198+
##### **Option 1: edit the Codex configuration file**
199+
198200
Add the following to your `~/.codex/config.toml` file:
199201

200202
```toml
@@ -215,6 +217,14 @@ startup_timeout_sec = 60
215217
The section must be named `mcp_servers` with an underscore. Using `mcp-servers` or `mcpservers` will cause Codex to ignore the configuration.
216218
{{% /notice %}}
217219

220+
##### **Option 2: add from the Codex CLI**
221+
222+
You can also add the Arm MCP server from the Codex CLI, after starting `codex` run:
223+
224+
```bash
225+
codex mcp add arm-mcp -- sh -lc 'docker run --rm -i -v "$PWD:/workspace" --name arm-mcp armlimited/arm-mcp:latest'
226+
```
227+
218228
### How do I verify the Arm MCP server is working?
219229

220230
Start Codex CLI and list the tools from the MCP server to verify it is working:

content/install-guides/container.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ Go to the [GitHub Releases page](https://github.com/apple/container/releases) an
6060
For example:
6161

6262
```bash
63-
wget https://github.com/apple/container/releases/download/0.4.1/container-0.4.1-installer-signed.pkg
63+
wget https://github.com/apple/container/releases/download/0.11.0/container-0.11.0-installer-signed.pkg
6464
```
6565

6666
Install the package:
6767

6868
```bash
69-
sudo installer -pkg container-0.4.1-installer-signed.pkg -target /
69+
sudo installer -pkg container-0.11.0-installer-signed.pkg -target /
7070
```
7171

7272
This installs the Container binary at `/usr/local/bin/container`.
@@ -90,7 +90,7 @@ container --version
9090
Example output:
9191

9292
```output
93-
container CLI version 0.4.1 (build: release, commit: 4ac18b5)
93+
container CLI version 0.11.0 (build: release, commit: d9b8a8d)
9494
```
9595

9696
## Build and run a container

content/learning-paths/embedded-and-microcontrollers/avh_balena/2setup.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Preparing a custom Balena OS image"
2+
title: "Prepare a custom Balena OS image"
33
weight: 2
44

55
### FIXED, DO NOT MODIFY
@@ -8,19 +8,19 @@ layout: learningpathall
88

99
## Sign up for Balena Cloud
1010

11-
The free Balena Cloud service manages IoT devices and applications. You can deploy Balena apps without Balena Cloud using the open source [OpenBalena project](https://github.com/balena-io/open-balena), but for simplicity this tutorial uses the hosted service.
11+
The free Balena Cloud service manages IoT devices and applications. You can deploy Balena apps without Balena Cloud using the open source [OpenBalena project](https://github.com/balena-io/open-balena), but for simplicity this Learning Path uses the hosted service.
1212

13-
Navigate to the [Balena Cloud Sign up](https://dashboard.balena-cloud.com/signup) form and create a new account. The free account lets you manage up to 10 devices with no cost. This Learning Path requires only one device.
13+
Navigate to the [Balena Cloud Sign up](https://dashboard.balena-cloud.com/signup) form and create a new account. The free account lets you manage up to 10 devices with no cost. This Learning Path requires only one device.
1414

15-
After you have created your account, you can create a fleet. A fleet is a collection of devices serving as a single target for deploying applications.
15+
After you've created your account, you can create a fleet. A fleet is a collection of devices serving as a single target for deploying applications.
1616

1717
Create a new fleet and name it `AVH-Testing`.
1818

1919
## Download the Balena OS image
2020

21-
Add a device to your fleet. Navigate to the `Devices` section of your fleet and click on the `Add Device` button. This will open a dialog to create a custom device image.
21+
Add a device to your fleet. Navigate to the `Devices` section of your fleet and click on the `Add Device` button. This opens a dialog to create a custom device image.
2222

23-
![Add Device dialog window](add_device.webp)
23+
![Dialog window showing device configuration options including device type selection, edition settings, and network configuration for creating a custom Balena OS image#center](add_device.webp "Add Device dialog window")
2424

2525
You can use the Raspberry Pi 4 device on Arm Virtual Hardware (AVH) as the new device.
2626

@@ -33,14 +33,14 @@ Leave the default values for everything else.
3333
Download the image by clicking on the drop-down arrow on the right side of the `Flash` button and select `Download balenaOS`.
3434

3535
{{% notice Note %}}
36-
There is no need to install Balena Etcher, the tool used to write SD cards.
36+
There's no need to install Balena Etcher, the tool used to write SD cards.
3737
{{% /notice %}}
3838

3939
The file is large so the download may take some time.
4040

4141
## Convert the download to an AVH custom image
4242

43-
When the download is finished, you can convert the Balena OS device image into a custom AVH image that you can upload to the AVH service and run on a Raspberry Pi 4 device.
43+
When the download finishes, you can convert the Balena OS device image into a custom AVH image that you can upload to the AVH service and run on a Raspberry Pi 4 device.
4444

4545
The conversion can be done using a Linux shell script.
4646

@@ -52,11 +52,11 @@ The conversion script requires a Linux environment with root access. If needed,
5252

5353
On a Linux machine, execute the script as root with the downloaded Balena OS image file as the only parameter:
5454

55-
```
55+
```bash
5656
bash ./mkbalenaosimg.sh balena-cloud-AVH-Testing-raspberrypi4-64-2.115.7+rev4-v14.11.2.img.zip
5757
```
5858

59-
If successful, the conversion script will create a new file named `balenaos_rpi4b.zip` in the same directory.
59+
If successful, the conversion script creates a new file named `balenaos_rpi4b.zip` in the same directory.
6060

6161
{{% notice Note %}}
6262
If needed, copy the `balenaos_rpi4b.zip` file back to your original machine.

content/learning-paths/embedded-and-microcontrollers/avh_balena/3install.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,31 @@ layout: learningpathall
88

99
## Create a new device
1010

11-
To create a new device, you need a user account for [Arm Virtual Hardware (AVH)](https://app.avh.arm.com/). If you don't have an account, you can create one using the `Create an Arm account` link below the `LOGIN` button. If you create a new account, you will be automatically enrolled in a free 30-day trial.
11+
To create a new device, you need a user account for [Arm Virtual Hardware (AVH)](https://app.avh.arm.com/). If you don't have an account, you can create one using the `Create an Arm account` link below the `LOGIN` button. If you create a new account, you'll be automatically enrolled in a free 30-day trial.
1212

13-
From the AVH dashboard, click on the `Create Device` button. Select Raspberry Pi 4 from the list of devices.
13+
From the AVH dashboard, click on the `Create Device` button. Select Raspberry Pi 4 from the list of devices.
1414

15-
On the next screen you will be asked to configure your device by choosing the firmware to use.
15+
On the next screen you'll be asked to configure your device by choosing the firmware to use.
1616

17-
Use the `Upload your own firmwware` on the right side to drag or browse for the file `balenaos_rpi4b.zip`.
17+
Use the `Upload your own firmwware` on the right side to drag or browse for the file `balenaos_rpi4b.zip`.
1818

19-
![upload custom firmware screen](upload_firmware.webp)
19+
![AVH firmware upload screen showing drag-and-drop area for uploading custom firmware file with Raspberry Pi 4 device selected#center](upload_firmware.webp "Upload custom firmware screen")
2020

21-
Uploading the file takes some time.
21+
Uploading the file takes some time.
2222

2323
After the file is uploaded, click `NEXT`.
2424

2525
The final step is to name the AVH device. Select your own name or use `balena-testing-device`.
2626

27-
You do not need to set any advanced boot options.
27+
You don't need to set any advanced boot options.
2828

29-
Wait for the device to be created. It is ready to use when you see the ready message:
29+
Wait for the device to be created. It's ready to use when you see the ready message:
3030

31-
![device ready](device_ready.webp)
31+
![AVH console showing device status message indicating the Raspberry Pi 4 virtual device is ready and displaying boot completion logs#center](device_ready.webp "Device ready message")
3232

3333
## Verify your device is ready
3434

35-
You now have access to the console and be are presented with a log in prompt.
35+
You now have access to the console and are presented with a log in prompt.
3636

3737
Log in with the username `root`. If a password is required, use `balena`.
3838

@@ -44,7 +44,7 @@ Verify `balena` available by running:
4444
balena version
4545
```
4646

47-
You will see output similar to:
47+
You'll see output similar to:
4848

4949
```output
5050
Client:
@@ -77,8 +77,8 @@ Server:
7777
GitCommit: 949e6fa-dirty
7878
```
7979

80-
Return to your Balena Cloud dashboard and refresh the `Devices` page.
80+
Return to your Balena Cloud dashboard and refresh the `Devices` page.
8181

82-
You will see your newly deployed device is registered and connected to your fleet. You are now ready to deploy applications to your device!
82+
You'll see your newly deployed device is registered and connected to your fleet. You're now ready to deploy applications to your device!
8383

84-
![devices](balena_devices.png)
84+
![Balena Cloud dashboard showing the Devices page with one Raspberry Pi 4 device connected, online, and ready to receive application deployments in the AVH-Testing fleet#center](balena_devices.png "Connected device in Balena Cloud")

content/learning-paths/embedded-and-microcontrollers/avh_balena/4deploy.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,46 +14,46 @@ As an example, you can deploy a Grafana dashboard from Balena Hub that will show
1414

1515
Open Balena Hub in a new tab by clicking on the Balena Hub button on the top right corner of your Balena Cloud dashboard.
1616

17-
![balena hub button](balena_hub_button.png)
17+
![Balena Cloud dashboard header showing the Balena Hub button in the top right corner next to other navigation elements#center](balena_hub_button.png "Balena Hub button location")
1818

1919
On the Balena Hub, click `Apps` in the top navigation bar, then search for `balena-app`. This is a pre-built dashboard backed by Grafana and served by Nginx.
2020

21-
![balena-app page](balena_hub_app.webp)
21+
![Balena Hub Apps page displaying search results for balena-app, showing the application card with description and deployment options#center](balena_hub_app.webp "balena-app in Balena Hub")
2222

23-
Click on the app to open the details page.
23+
Click on the app to open the details page.
2424

25-
Look for the `Deploy` button in the upper-right corner of the page.
25+
Look for the `Deploy` button in the upper-right corner of the page.
2626

27-
Clicking this button will take you back to your Balena Cloud dashboard with a dialog to deploy `balena-app` to a fleet.
27+
Clicking this button takes you back to your Balena Cloud dashboard with a dialog to deploy `balena-app` to a fleet.
2828

29-
![deploy balena-app](balena_app_deploy.png)
29+
![Deployment dialog showing fleet selection options with AVH-Testing fleet highlighted and advanced configuration settings collapsed#center](balena_app_deploy.png "Deploy balena-app to fleet")
3030

3131
Select `Use an existing fleet instead` and choose the `AVH-Testing` fleet.
3232

3333
You don't need to do any advanced configuration for this app. Click the `Deploy to fleet` button to begin the deployment.
3434

3535
{{% notice Note %}}
36-
If you have more than one device in your fleet, this process will deploy the selected application to all devices in your fleet simultaneously.
36+
If you have more than one device in your fleet, this process deploys the selected application to all devices in your fleet simultaneously.
3737
{{% /notice %}}
3838

39-
Once the deployment is finished, click on your device in Balena Cloud dashboard to open up the device page. You will see that the Grafana and Nginx services have been deployed to and are running on your device.
39+
Once the deployment finishes, click on your device in Balena Cloud dashboard to open up the device page. You'll see that the Grafana and Nginx services have been deployed to and are running on your device.
4040

41-
![balena app running](balena_app_running.webp)
41+
![Balena Cloud device page showing active services with Grafana and Nginx containers running, including service status indicators and log output#center](balena_app_running.webp "balena-app services running on device")
4242

43-
You will also be able to see the system logs from your device, and optionally get access to the device's terminal from this Balena Cloud screen.
43+
You'll also be able to see the system logs from your device, and optionally get access to the device's terminal from this Balena Cloud screen.
4444

45-
## Accessing your Grafana dashboard
45+
## Access your Grafana dashboard
4646

47-
Your application is now running, but it's not accessible from the outside world. In order to view your Grafana dashboard in your browser, you will need to tell Balena to make your device accessible from a public URL.
47+
Your application is now running, but it's not accessible from the outside world. To view your Grafana dashboard in your browser, you need to tell Balena to make your device accessible from a public URL.
4848

49-
Toggle the `Public Device URL` switch to the `On` position.
49+
Toggle the `Public Device URL` switch to the `On` position.
5050

51-
A link will appear next to the switch, click on it to open the newly created public URL.
51+
A link appears next to the switch, click on it to open the newly created public URL.
5252

53-
![balena-app login](balena_app_login.webp)
53+
![Balena-app login screen showing username and password fields over a dark background with the Grafana logo and branding#center](balena_app_login.webp "balena-app login page")
5454

55-
This will open the `balena-app` on your device in your browser. You will be presented with a log in screen, use the default username `admin` and password `admin` to log in. You will be prompted to set a new password for the `admin` user before continuing.
55+
This opens the `balena-app` on your device in your browser. You're presented with a log in screen, use the default username `admin` and password `admin` to log in. You'll be prompted to set a new password for the `admin` user before continuing.
5656

57-
![balena-app dashboard](balena_app_dashboard.webp)
57+
![Grafana dashboard showing real-time system metrics including CPU usage, memory consumption, network traffic, and container status for the Balena OS device#center](balena_app_dashboard.webp "balena-app dashboard with system metrics")
5858

5959
You now see the Grafana dashboard monitoring your Balena OS installation on this device, including the containers running Grafana and Nginx.

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
---
2-
title: Deploy IoT apps using Balena Cloud and Arm Virtual Hardware
2+
title: Deploy IoT applications with Balena Cloud and Arm Virtual Hardware
3+
4+
description: Learn how to create a custom Balena OS image, run it on Arm Virtual Hardware, and deploy IoT applications to a virtual Raspberry Pi 4 device.
35

46
minutes_to_complete: 30
57

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: Build an RTX5 RTOS application with Keil μVision
33

4+
description: Learn how to create, build, and debug an RTX5 RTOS-based application using Keil μVision with CMSIS-RTOS2 API and Event Recorder for embedded Cortex-M development.
45

56
minutes_to_complete: 30
67

content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/build_and_run.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ Click `Run` (`F5`) to start the application, and after a short time, click `Stop
2323

2424
Observe in the `RTX RTOS` view that the threads have been created. Two other threads, `osRtxIdleThread` and `osRtxTimerThread` will also be created.
2525

26-
![RTX RTOS #center](keil_rtos.png)
26+
![Screenshot of the RTX RTOS view in Keil μVision showing the list of created threads including thread_1, thread_2, osRtxIdleThread, and osRtxTimerThread with their status and priority information#center](keil_rtos.png "RTX RTOS threads view")
2727

28-
However no output is seen in the `printf viewer`. This is because semihosting is not supported. You will learn how to address this in the next section.
28+
However no output is seen in the `printf viewer`. This is because semihosting isn't supported. You'll learn how to address this in the next section.
2929

3030
Exit the debug session (`Ctrl+F5`).
3131

@@ -48,13 +48,13 @@ You must now create a `Debug Configuration`:
4848

4949
When debugging, use the `OS Data` view to observe RTOS information. Open from the `Window` > `Show View` menu. Use the pull down to select different categories.
5050

51-
![OS Data #center](os_data.png)
51+
![Screenshot of the OS Data view showing RTOS thread information including task names, states, and stack usage#center](os_data.png "OS Data view with thread details")
5252

5353
For thread aware debug, right-click on the debug connection in the `Debug Control` view, and select `Display threads`.
5454

55-
![Debug Control #center](debug_control.png)
55+
![Screenshot of the Debug Control view with the context menu showing the Display threads option for thread-aware debugging#center](debug_control.png "Debug Control view with thread display option")
5656

57-
You will see the printf() output in `Target Console` pane.
57+
You'll see the printf() output in `Target Console` pane.
5858
```
5959
hello from thread 1
6060
hello from thread 2

content/learning-paths/embedded-and-microcontrollers/cmsis_rtx/create.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ This learning path will introduce the steps to create a basic RTX based RTOS app
1111

1212
For more information on the latest update, see the [CMSIS v6 is here](https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/cmsis-v6-is-here) blog.
1313

14-
You will use [Keil MDK](/install-guides/mdk) through this Learning Path. If you are using [Arm Development Studio](/install-guides/armds) refer to the appropriate comments.
14+
You'll use [Keil MDK](/install-guides/mdk) through this Learning Path. If you're using [Arm Development Studio](/install-guides/armds) refer to the appropriate comments.
1515

1616
{{% notice Note%}}
1717
If using `Arm Keil Studio for Visual Studio Code` please go to [Build an RTX5 RTOS application with Keil Studio (VS Code)](/learning-paths/embedded-and-microcontrollers/cmsis_rtx_vs/).
@@ -47,15 +47,15 @@ Then select `CMSIS C/C++ Project`, using `Arm Compiler for Embedded 6`.
4747

4848
### Select device
4949

50-
You will then be prompted to `Select Device` for your project. A list of all devices with their CMSIS-Packs installed will be shown.
50+
You'll then be prompted to `Select Device` for your project. A list of all devices with their CMSIS-Packs installed will be shown.
5151

5252
For this example, select `Arm` > `Arm Cortex-M4` > `ARMCM4`. Click `OK`.
5353

5454
## Manage Run-Time Environment
5555

56-
You will first be presented with the `Manage Run-Time Environment` dialog, which allows you to specify the CMSIS software components that will be used in the project.
56+
You'll first be presented with the `Manage Run-Time Environment` dialog, which allows you to specify the CMSIS software components that will be used in the project.
5757

58-
Under `CMSIS`, select `CORE`, as well as `RTOS2 (API)` > `Keil RTX5`, in `Source` form. You will also need to select `CMSIS` > `OS Tick (API)` > `SysTick`.
58+
Under `CMSIS`, select `CORE`, as well as `RTOS2 (API)` > `Keil RTX5`, in `Source` form. You'll also need to select `CMSIS` > `OS Tick (API)` > `SysTick`.
5959

6060
Under `Device`, select `Startup` (`C Startup`).
6161

0 commit comments

Comments
 (0)