Main Content

Getting Started with Embedded Coder Support Package for ARM Cortex-M Processors

This example shows you how to use the Embedded Coder® Support Package for ARM® Cortex®-M Processors to run a Simulink® model on an ARM Cortex-M3 emulator provided by QEMU.

Introduction

The Embedded Coder Support Package for ARM Cortex-M Processors enables you to create and run a Simulink model on the QEMU emulator. You can verify the generated code on an emulated ARM Cortex-M3 processor without physical hardware. You can also collect execution profiling measurements running PIL simulations to optimize the execution time of your algorithm.

Prerequisites

If you are new to Simulink, we recommend completing the Interactive Simulink Tutorial. If you are new to Embedded Coder, visit the Embedded Coder product page for an overview and tutorials. Open the arm_cortex_m_gettingstarted model.

Task 1 - Configure the Model for Code Generation

In this task, you will create a simple model that will run on the ARM Cortex-M3 (QEMU) emulated target.

1. In MATLAB, select HOME > New > Simulink Model.

2. Open the Modeling tab and press CTRL+E to open Configuration Parameters dialog box. Go to Hardware Implementation > Hardware board, and select ARM Cortex-M3 (QEMU).

3. Open the Simulink browser. Click on the Simulink > Commonly Used Blocks tab. Drag and drop a Constant block, a Gain block and an Out1 block into your model. Connect these three blocks as shown in the figure below and generate code by first saving the model and then clicking on Build, Deploy & Start button.

4. You will see in the Diagnostic Viewer window that code is generated for the model.

..
.....
......
### Created: ../untitled1.elf
### Invoking postbuild tool Binary Converter ...
arm-none-eabi-objcopy -O binary ../untitled1.elf ../untitled1.bin
### Done invoking postbuild tool.
### Invoking postbuild tool Hex Converter ...
arm-none-eabi-objcopy -O ihex ../untitled1.elf ../untitled1.hex
### Done invoking postbuild tool.
### Invoking postbuild tool Executable Size ...
arm-none-eabi-size ../untitled1.elf
   text	   data	    bss	    dec	    hex	filename
   2328	     20	   2136	   4484	   1184	../untitled1.elf
### Done invoking postbuild tool.
### Successfully generated all binary outputs.

The generated executable will start running on the QEMU emulator.

5. Terminate the emulator session by executing the following command:

codertarget.arm_cortex_m.stopQemu

6. To interact with the code running on the QEMU emulator, see the Code Verification and Validation with PIL example.

Summary

This example introduced the workflow for configuring and running a Simulink model on the ARM Cortex-M3 QEMU emulator.