Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ weight: 5 # 1 is first, 2 is second, etc.
# Do not modify these elements
layout: "learningpathall"
---
The [CMSIS-DSP tests](https://github.com/ARM-software/CMSIS-DSP/blob/main/Testing) are publicly available, and are used for validation of the library. They can be run on the [Corstone-300](https://developer.arm.com/Processors/Corstone-300) Fixed Virtual Platform (FVP).
The [CMSIS-DSP tests](https://github.com/ARM-software/CMSIS-DSP/blob/main/Testing) are publicly available, and are used for validation of the library. They can be run on the [Corstone reference systems](https://www.arm.com/products/silicon-ip-subsystems/), for example [Corstone-300](https://developer.arm.com/Processors/Corstone-300) Fixed Virtual Platform (FVP).

These tests are primarily for Arm internal use, but users can replicate if they wish. Else proceed to the [next step](/learning-paths/microcontrollers/cmsis-dsp/_review/).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ recommended_path: "/learning-paths/microcontrollers/tfm"
# further_reading links to references related to this path. Can be:
# Manuals for a tool / software mentioned (type: documentation)
# Blog about related topics (type: blog)
# General online references (type: website)
# General online references (type: website)

further_reading:
- resource:
Expand All @@ -25,6 +25,10 @@ further_reading:
title: Arm Speech Recognition Total Solution example video, using the Arm Open IoT SDK, Corstone-310 and AVH
link: https://devsummit.arm.com/flow/arm/devsummit22/sessions-catalog/page/sessions/session/16600464346670018mPQ
type: website
- resource:
title: Learn more about the Corstone reference systems
link: https://www.arm.com/products/silicon-ip-subsystems/
type: website

# ================================================================================
# FIXED, DO NOT MODIFY
Expand Down
22 changes: 11 additions & 11 deletions content/learning-paths/microcontrollers/mlek/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,31 @@ layout: "learningpathall"
---
The [Arm ML Evaluation Kit (MLEK)](https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ml-embedded-evaluation-kit) provides a number of ready-to-use ML applications. These allow you to investigate the embedded software stack and evaluate performance on the Cortex-M55 and Ethos-U55 processors.

You can use the MLEK source code to build sample applications and run them on the [Corstone-300](https://developer.arm.com/Processors/Corstone-300) Fixed Virtual Platform (FVP).
You can use the MLEK source code to build sample applications and run them on the [Corstone reference systems](https://www.arm.com/products/silicon-ip-subsystems/), for example the [Corstone-300](https://developer.arm.com/Processors/Corstone-300) Fixed Virtual Platform (FVP).

## Before you begin
## Before you begin

You can use your own Ubuntu Linux host machine or use [Arm Virtual Hardware (AVH)](https://www.arm.com/products/development-tools/simulation/virtual-hardware) for this Learning Path.

The Ubuntu version should be 20.04 or 22.04. The `x86_64` architecture must be used because the Corstone-300 FVP is not currently available for the Arm architecture. You will need a Linux desktop to run the FVP because it opens graphical windows for input and output from the software applications.
The Ubuntu version should be 20.04 or 22.04. The `x86_64` architecture must be used because the Corstone-300 FVP is not currently available for the Arm architecture. You will need a Linux desktop to run the FVP because it opens graphical windows for input and output from the software applications.

If you want to use Arm Virtual Hardware the [Arm Virtual Hardware install guide](/install-guides/avh#corstone) provides setup instructions.

### Compilers
### Compilers

The examples can be built with [Arm Compiler for Embedded](https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded) or [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain).
The examples can be built with [Arm Compiler for Embedded](https://developer.arm.com/Tools%20and%20Software/Arm%20Compiler%20for%20Embedded) or [Arm GNU Toolchain](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain).

Use the install guides to install the compilers on your computer:
- [Arm Compiler for Embedded](/install-guides/armclang/)
- [Arm GNU Toolchain](/install-guides/gcc/arm-gnu)

Both compilers are pre-installed in Arm Virtual Hardware.
Both compilers are pre-installed in Arm Virtual Hardware.

### Corstone-300 FVP {#fvp}

To install the Corstone-300 FVP on your computer refer to the [install guide for Arm Ecosystem FVPs](/install-guides/fm_fvp).
To install the Corstone-300 FVP on your computer refer to the [install guide for Arm Ecosystem FVPs](/install-guides/fm_fvp).

The Corstone-300 FVP is pre-installed in Arm Virtual Hardware.
The Corstone-300 FVP is pre-installed in Arm Virtual Hardware.

## Clone the repository

Expand All @@ -54,9 +54,9 @@ git submodule update --init

## Build the example applications

The default compiler is `gcc`, but `armclang` can also be used.
The default compiler is `gcc`, but `armclang` can also be used.

You can select either compiler to build applications. You can also try them both and compare the results.
You can select either compiler to build applications. You can also try them both and compare the results.

- Build with Arm GNU Toolchain (`gcc`)

Expand All @@ -70,6 +70,6 @@ You can select either compiler to build applications. You can also try them both
./build_default.py --toolchain arm
```

The build will take a few minutes.
The build will take a few minutes.

When the build is complete, you will find the example images (`.axf` files) in the `cmake-build-*/bin` directory. The `cmake-build` directory names are specific to the compiler used and Ethos-U55 configuration.
6 changes: 3 additions & 3 deletions content/learning-paths/microcontrollers/nav-mlek/intro.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
---
title: Overview

weight: 2
weight: 2

# Do not modify these elements
layout: "learningpathall"
---

As a microcontroller software developer, you likely start projects by identifying tools and software, setting up a development environment, and gathering evaluation boards and models.

Machine Learning (ML) applications follow the same pattern, but introduce additional complexity around the inclusion of machine learning models, software libraries for ML operations, and driver software to program neural processing unit (NPU) hardware.
Machine Learning (ML) applications follow the same pattern, but introduce additional complexity around the inclusion of machine learning models, software libraries for ML operations, and driver software to program neural processing unit (NPU) hardware.

The [Corstone-300](https://developer.arm.com/Processors/Corstone-300) and [Corstone-310](https://developer.arm.com/Processors/Corstone-310) reference designs are the basis of many ML IoT solutions. These designs offer a jump start on building hardware for ML applications. There are many software tools and examples available to get started creating ML applications, but you may find it difficult to see the big picture and understand which tools and software are best for you.
The [Corstone reference systems](https://www.arm.com/products/silicon-ip-subsystems) are the basis of many ML IoT solutions. These designs offer a jump start on building hardware for ML applications. There are many software tools and examples available to get started creating ML applications, but you may find it difficult to see the big picture and understand which tools and software are best for you. You can review the differences between the Corstone reference systems on the [Arm Developer Homepage for Corstone](https://developer.arm.com/documentation/102801/latest/).

This Learning Path is to help you get started with Cortex-M and Ethos-U machine learning application development.
41 changes: 22 additions & 19 deletions content/learning-paths/microcontrollers/nav-mlek/platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,33 @@ There are very many Cortex-M microcontrollers with available [development boards

### MPS3 FPGA prototyping board

The [Arm MPS3 FPGA Prototyping Board](https://www.arm.com/products/development-tools/development-boards/mps3/) can be programmed with [FPGA images](https://developer.arm.com/downloads/-/download-fpga-images/) for the Corstone-300 and the Corstone-310 designs. The FPGA images are good for early software development.
The [Arm MPS3 FPGA Prototyping Board](https://www.arm.com/products/development-tools/development-boards/mps3/) can be programmed with [FPGA images](https://developer.arm.com/downloads/-/download-fpga-images/) for the for the Corstone-300, Corstone-310 and Corstone-1000 reference packages. The FPGA images are good for early software development.

MPS3 is the recommended solution for evaluating performance, but boards are in short supply and may be difficult to obtain.


## Virtual Hardware

Virtual implementations of the Corstone-300 and Corstone-310 are also available for software development. These can be accessed locally or in the cloud.
Virtual implementations of the Corstone reference systems are also available for software development. These can be accessed locally or in the cloud.

### Ecosystem FVPs

Ecosystem FVPs are free-of-charge and target a variety of applications. They run on Linux and Windows.

The Corstone-300 and Corstone-310 FVPs are available on the [Arm Ecosystem FVP page](https://developer.arm.com/downloads/-/arm-ecosystem-fvps/). General ecosystem FVP setup instructions are provided in the [install guide](/install-guides/fm_fvp/eco_fvp/).
The Corstone reference systems are available on the [Arm Ecosystem FVP page](https://developer.arm.com/downloads/-/arm-ecosystem-fvps/). General ecosystem FVP setup instructions are provided in the [install guide](/install-guides/fm_fvp/eco_fvp/).

The Ecosystem FVP can be used in conjunction with [Keil MDK](https://developer.arm.com/Tools%20and%20Software/Keil%20MDK) or [Arm Development Studio](https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio).

Keil MDK Professional Edition also provides these virtual platforms.

### Arm Virtual Hardware
### Arm Virtual Hardware

[Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware/) provides two cloud-based solutions to access Corstone-300 and Corstone-310 platforms. These are intended for use as software test and validation environments suitable for CI/CD integration.
[Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware/) provides two cloud-based solutions to access Corstone reference systems. These are intended for use as software test and validation environments suitable for CI/CD integration.

Both versions of AVH offer FVPs. Choose the one which best matches your preferences. You can use your AWS account and pay for the compute you use or pay for the hardware-as-a-service directly using your Arm account. Both methods offer free trials.

The marketing information provides more details about the similarities and differences.

- [Arm Virtual Hardware Corstone and CPUs](#aws) AWS AMI (Amazon Machine Image) provides Virtual Hardware Targets (`VHT`) in a cloud instance (virtual machine). The AMI is available in the [AWS marketplace](https://aws.amazon.com/marketplace/pp/prodview-urbpq7yo5va7g/).
- [Arm Virtual Hardware Corstone and CPUs](#aws) AWS AMI (Amazon Machine Image) provides Virtual Hardware Targets (`VHT`) in a cloud instance (virtual machine). The AMI is available in the [AWS marketplace](https://aws.amazon.com/marketplace/pp/prodview-urbpq7yo5va7g/).

- [Arm Virtual Hardware Third-Party Hardware](#3rdparty) uses hypervisor technology to model real hardware provided by Arm’s partners. It also offers FVPs as part of the cloud service.

Expand Down Expand Up @@ -84,13 +83,13 @@ If you can start the FVPs you are ready for ML application development.

#### Arm Virtual Hardware Third-Party Hardware {#3rdparty}

Arm Virtual Hardware Third-Party Hardware is currently in public beta.
Arm Virtual Hardware Third-Party Hardware is currently in public beta.

[Log in to AVH](https://app.avh.arm.com/login/) using your Arm account or create a new one using the `Create an Arm account` link.

After log in, you can use the AVH console to create a new device and select `Corstone-300fvp` or `Corstone-310fvp`.

You can use the AVH console to upload software and control FVP execution.
You can use the AVH console to upload software and control FVP execution.

There is also documentation available in the console you can read to continue learning about AVH.

Expand All @@ -107,18 +106,18 @@ The [AVH simulation model documentation](https://arm-software.github.io/AVH/main

Ethos-U55 and Ethos-U65 offer a configurable number of MACs (multiply-accumulate units). During IP evaluation and performance analysis you need to understand the numbers of MACs available in the hardware and create your software to use the same configuration.

| Ethos-U NPU | Number of MACs supported |
| ----------- | ----------- |
| Ethos-U55 | 32, 64, 128, 256 |
| Ethos-U65 | 256, 512 |
| Ethos-U NPU | Number of MACs supported |
| ----------- | ----------- |
| Ethos-U55 | 32, 64, 128, 256 |
| Ethos-U65 | 256, 512 |

FVP and VHT platforms can be configured with:
```console
-C ethosu.num_macs=128
```
### Fast mode

The Ethos-U model used in FVPs can run at a faster speed with less simulation detail.
The Ethos-U model used in FVPs can run at a faster speed with less simulation detail.

Use this configuration parameter to enable fast mode:

Expand All @@ -128,20 +127,24 @@ Use this configuration parameter to enable fast mode:

### Hardware memory maps

A memory map is available for each configuration of Corstone-300 and Corstone-310. For example, the Corstone-300 with Cortex-M55 and Ethos-U55 [memory map](https://developer.arm.com/documentation/100966/1118/Arm--Corstone-SSE-300-FVP/Memory-map-overview-for-Corstone-SSE-300/) describes the address ranges for memory and peripherals.
A memory map is available for each configuration of the Corstone kits. For example, the Corstone-300 with Cortex-M55 and Ethos-U55 [memory map](https://developer.arm.com/documentation/100966/1118/Arm--Corstone-SSE-300-FVP/Memory-map-overview-for-Corstone-SSE-300/) describes the address ranges for memory and peripherals.

Refer to the [Corstone-300 Reference Guide](https://developer.arm.com/documentation/100966/1118/Arm--Corstone-SSE-300-FVP/) and [Corstone-310 Reference Guide](https://developer.arm.com/documentation/100966/1118/Arm--Corstone-SSE-310-FVP/) for details about the hardware models.
Refer to the reference guides for details about the hardware models:
- [Corstone-300 Reference Guide](https://developer.arm.com/documentation/100966/latest/Arm--Corstone-SSE-300-FVP/)
- [Corstone-310 Reference Guide](https://developer.arm.com/documentation/100966/latest/Arm--Corstone-SSE-310-FVP/)
- [Corstone-315 Reference Guide](https://developer.arm.com/documentation/109395/latest)
- [Corstone-320 Reference Guide](https://developer.arm.com/documentation/109760/latest)

The memory map of FVPs is NOT configurable.

## Arm IP Explorer

Arm IP Explorer is used by SoC architects to select IP for new designs. It includes simulation features which provide cycle accurate simulation of Arm processors for the purpose of processor selection. It covers Cortex-M and Ethos-U and can help you determine the best processor configurations for a project.
Arm IP Explorer is used by SoC architects to select IP for new designs. It includes simulation features which provide cycle accurate simulation of Arm processors for the purpose of processor selection. It covers Cortex-M and Ethos-U and can help you determine the best processor configurations for a project.

Refer to the [Arm IP Explorer install guide](/install-guides/ipexplorer/) for links to more information.
Refer to the [Arm IP Explorer install guide](/install-guides/ipexplorer/) for links to more information.

## Summary

You should have a general understanding of the hardware options for Corstone-300 and Corstone-310 for application development. You can use an MPS3 board or an FVP on your local machine or using one of the cloud solutions.
You should have a general understanding of the hardware options for Corstone-300 and Corstone-310 for application development. You can use an MPS3 board or an FVP on your local machine or using one of the cloud solutions.

The next section covers similar information for software, tools, and example applications.