Run a demo application using IAR
This section describes the steps required to build, run, and debug example applications provided in the MCUXpresso SDK.
Note: IAR Embedded Workbench for Arm version 8.32.3 is used in the following example, and the IAR toolchain should correspond to the latest supported version, as described in the MCUXpresso SDK Release Notes.
Build an example application
Do the following steps to build the hello_world
example application.
Open the desired demo application workspace. Most example application workspace files can be located using the following path:
<install_dir>/boards/<board_name>/<example_type>/<application_name>/iar
Other example applications may have additional folders in their path.
Select the desired build target from the drop-down menu.
For this example, select hello_world – debug.
To build the demo application, click Make, highlighted in red in following figure.
The build completes without errors.
Run an example application
To download and run the application, perform these steps:
Ensure the host driver for the debugger firmware has been installed. See On-board debugger.
Connect the development platform to your PC via USB cable.
Open the terminal application on the PC, such as PuTTY or TeraTerm, and connect to the debug COM port (to determine the COM port number, see How to determine COM port). Configure the terminal with these settings:
115200 or 9600 baud rate, depending on your board (reference
BOARD_DEBUG_UART_BAUDRATE
variable in theboard.h
file)No parity
8 data bits
1 stop bit
In IAR, click the Download and Debug button to download the application to the target.
The application is then downloaded to the target and automatically runs to the
main()
function.Run the code by clicking the Go button.
The
hello_world
application is now running and a banner is displayed on the terminal. If it does not appear, check your terminal settings and connections.
Build a multicore example application
This section describes the steps to build and run a dual-core application. The demo applications workspace files are located in this folder:
<install_dir>/boards/<board_name>/multicore_examples/<application_name>/<core_type>/iar
Begin with a simple dual-core version of the Hello World application. The multicore Hello World IAR workspaces are located in this folder:
<install_dir>/boards/lpcxpresso54114/multicore_examples/hello_world/cm0plus/iar/hello_world_cm0plus.eww
<install_dir>/boards/lpcxpresso54114/multicore_examples/hello_world/cm4/iar/hello_world_cm4.eww
Build both applications separately by clicking the Make button. Build the application for the auxiliary core (cm0plus) first, because the primary core application project (cm4) must know the auxiliary core application binary when running the linker. It is not possible to finish the primary core linker when the auxiliary core application binary is not ready.
Run a multicore example application
The primary core debugger handles flashing both primary and the auxiliary core applications into the SoC flash memory. To download and run the multicore application, switch to the primary core application project and perform steps 1 – 4 as described in Run an example application. These steps are common for both single core and dual-core applications in IAR.
After clicking the “Download and Debug” button, the auxiliary core project is opened in the separate EWARM instance. Both the primary and auxiliary images are loaded into the device flash memory and the primary core application is executed. It stops at the default C language entry point in the *main()*function.
Run both cores by clicking the “Start all cores” button to start the multicore application.
During the primary core code execution, the auxiliary core is released from the reset. The hello_world multicore application is now running and a banner is displayed on the terminal. If this does not appear, check the terminal settings and connections.
An LED controlled by the auxiliary core starts flashing, indicating that the auxiliary core has been released from the reset and is running correctly. When both cores are running, use the “Stop all cores”, and “Start all cores” control buttons to stop or run both cores simultaneously.
Build a TrustZone example application
This section describes the particular steps that must be done in order to build and run a TrustZone application. The demo applications workspace files are located in this folder:
<install_dir>/boards/<board_name>/trustzone_examples/<application_name>/[<core_type>]/iar/<application_name>_ns/iar
<install_dir>/boards/<board_name>/trustzone_examples/<application_name>/[<core_type>]/iar/<application_name>_s/iar
Begin with a simple TrustZone version of the Hello World application. The TrustZone Hello World IAR workspaces are located in this folder:
<install_dir>/boards/<board_name>/trustzone_examples/hello_world/hello_world_ns/iar/hello_world_ns.eww
<install_dir>/boards/<board_name>/trustzone_examples/hello_world/hello_world_s/iar/hello_world_s.eww
<install_dir>/boards/<board_name>/trustzone_examples/hello_world/hello_world_s/iar/hello_world.eww
This project hello_world.eww
contains both secure and non-secure projects in one workspace and it allows the user to easily transition from one project to another. Build both applications separately by clicking Make. It is requested to build the application for the secure project first, because the non-secure project must know the secure project, since the CMSE library is running the linker. It is not possible to finish the non-secure project linker with the secure project since CMSE library is not ready.
Run a TrustZone example application
The secure project is configured to download both secure and non-secure output files, so debugging can be fully managed from the secure project. To download and run the TrustZone application, switch to the secure application project and perform steps 1 – 4 as described in Run an example application. These steps are common for both single core, and TrustZone applications in IAR. After clicking Download and Debug, both the secure and non-secure images are loaded into the device memory, and the secure application is executed. It stops at the Reset_Handler
function.
Run the code by clicking Go to start the application.
The TrustZone hello_world
application is now running and a banner is displayed on the terminal. If this is not true, check your terminal settings and connections.
Note: If the application is running in RAM (debug/release build target), in Options**>**Debugger > Download tab, disable Use flash loader(s). This can avoid the _ns
download issue on i.MXRT500.