MCUXpresso SDK board support package folders

MCUXpresso SDK board support package provides example applications for NXP development and evaluation boards for Arm® Cortex®-M cores including Freedom, Tower System, and LPCXpresso boards. Board support packages are found inside the top level boards folder and each supported board has its own folder (an MCUXpresso SDK package can support multiple boards). Within each <board_name> folder, there are various sub-folders to classify the type of examples it contain. These include (but are not limited to):

  • demo_apps: Full-featured applications that highlight key functionality and use cases of the target MCU. These applications typically use multiple MCU peripherals and may leverage stacks and middleware.

  • driver_examples: Simple applications that show how to use the MCUXpresso SDK’s peripheral drivers for a single use case. These applications typically only use a single peripheral but there are cases where multiple peripherals are used (for example, SPI conversion using DMA).

  • rtos_examples: Basic FreeRTOSTM OS examples that show the use of various RTOS objects (semaphores, queues, and so on) and interfaces with the MCUXpresso SDK’s RTOS drivers

Example application structure

This section describes how the various types of example applications interact with the other components in the MCUXpresso SDK. To get a comprehensive understanding of all MCUXpresso SDK components and folder structure, see MCUXpresso SDK API Reference Manual.

Each <board_name> folder in the boards directory contains a comprehensive set of examples that are relevant to that specific piece of hardware. Although we use the hello_world example (part of the demo_apps folder), the same general rules apply to any type of example in the <board_name> folder.

In the hello_world application folder you see the following contents:

All files in the application folder are specific to that example, so it is easy to copy and paste an existing example to start developing a custom application based on a project provided in the MCUXpresso SDK.

Parent topic:MCUXpresso SDK board support package folders

Locating example application source files

When opening an example application in any of the supported IDEs, a variety of source files are referenced. The MCUXpresso SDK devices folder is the central component to all example applications. It means the examples reference the same source files and, if one of these files is modified, it could potentially impact the behavior of other examples.

The main areas of the MCUXpresso SDK tree used in all example applications are:

  • devices/<device_name>: The device’s CMSIS header file, MCUXpresso SDK feature file and a few other files

  • devices/<device_name>/drivers: All of the peripheral drivers for your specific MCU

  • devices/<device_name>/<tool_name>: Toolchain-specific startup code, including vector table definitions

  • devices/<device_name>/utilities: Items such as the debug console that are used by many of the example applications

For examples containing an RTOS, there are references to the appropriate source code. RTOSes are in the rtos folder. The core files of each of these are shared, so modifying one could have potential impacts on other projects that depend on that file.

What is the plain load image?

The plain load image is linked to SRAMX. When building, it needs to be programmed to the external onboard flash. After reset, the bootloader starts to run. Then, it checks the image type (which is set in the image header, which resides in the startup code). If the type is plain load image, the bootloader copies the image to SRAMX, then jumps to SRAMX to run.

Parent topic:Locating example application source files

What is the XIP image?

When an XIP (Execute-in-Place) image is used, the MCU executes instructions and uses data directly from external (quad) SPI flash. When building, it needs to be programmed to the external onboard flash. After reset, the bootloader starts to run. Then, it checks the image type (which is set in the image header, which resides in the startup code). If the type is XIP image, the device executes in the external flash.

Parent topic:Locating example application source files

What is the SRAM target image?

The SRAM target image is linked to the SRAM address when building. When debugging, the SRAM target, the IDE just loads the image into SRAM to run.

Parent topic:Locating example application source files

Parent topic:MCUXpresso SDK board support package folders