==== Preface ====
The aim is to create a reproducible build chain for a “Hello World” demo on the Cortex-M7 core of the TQMa117xL using VS code under Ubuntu 24.04. \\ The following regarding the **OS** is necessary:
* Ubuntu 24.04 (64-bit), kept up-to-date.
* Super user rights for tool installations and system changes.
The instructions on this page refer to the TQMa117xL repository and ancillary tools listed in the following table.
==== Prerequisites ====
Building under Windows has been tested with the following software and versions.
^ Tool ^ Version ^
^ GitHub Repository | [[https://github.com/tq-systems/MBa117xL.SW.MCU.BSP | MBa117xL.SW.MCU.BSP]] |
^ [[https://code.visualstudio.com/Download|VS-Code]] | Version 1.88.1 |
^ [[https://github.com/nxp-mcuxpresso/mcux-sdk|NXP's MCUXpresso SDK]] | MCUX_2.14.0_UPDATE_ENHC1 |
^ [[https://cmake.org/download/|CMAKE]] | Version 3.27.4 |
^ [[https://pypi.org/project/west/|West]] | Version 1.0.0 |
^ [[https://www.python.org/downloads/|Python]] | Version 3.10.4 |
^ [[https://www.segger.com/downloads/jlink/|Segger J-Link for debugging]] | Version v7.92l |
^ Download MinGW for Windows | v13.1.0 |
In order to build and debug the examples via VS-Code you need to add the following VS-Code extentions.
^ Extention ^ Version ^
^ ms-vscode.cmake-tools
| CMake tools (from Microsoft): v1.16.3 |
^ marus25.cortex-debug
| Cortex-Debug (from marus25): v1.12.0 |
Advice: Check if the 'Status-Bar-Visibility' option by the CMAKE extention is set to 'visible'.
==== Setup Host System and VS-Code ====
1. Install Python3 (needed for west and helper scripts)
sudo apt install python3 python3-pip python3-venv -y
3. Setup Virtual Enviroment
python3 -m venv ~/mba117xl-env
source ~/mba117xl-env/bin/activate
2. Install Arm GNU Toolchain
Download from: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
sudo apt install gcc-arm-none-eabi
3. Install CMake
sudo apt install cmake -y
4. (Optional) Install SEGGER J-Link for Debugging
==== Setup Project ====
Take a look at [[https://support.tq-net.de/en/arm/tqma117xl/overview#structure-of-repository|Structure of Repository]]
**Clone the TQMa117xL demo repository:**
mkdir -p ~/workspace/NXP
cd ~/workspace
git clone https://https://github.com/tq-systems/MBa117xL.SW.MCU.BSP.git
cd MBa117xL.SW.MCU.BSP
git checkout MBa117xL.SW.MCU.BSP.0003 -b tqma117xl-bsp
\\
**Clone NXP MCUXpresso SDK via West:**
pip3 install west
cd dependencies
west init -m https://github.com/NXPmicro/mcux-sdk --mr MCUX_2.16.000 mcuxsdk
cd mcuxsdk
west update
Afterwards, copy replace_include_guards.py into the same directory as the mcuxsdk.\\ **ATTENTION: This step is absolutely necessary!**
cp ../replace_include_guards.py ./
After downloading the SDK from NXP using West, the Python script replace_include_guards.py must be run once. This is required because targets set to global cannot be built in the same build folder due to the existing include guards in the CMake files in the NXP SDK.
cd ..
python3 replace_include_guards.py
\\
**VS-Code additional step:** \\
When using Visual Studio Code as your development environment, the `.vscode` folder plays a critical role in configuring how your project is built and debugged.
These files inside the `.vscode` folder are **specific to your local development environment**.
.vscode/
├── settings.json → Environment vars and toolchain path
├── launch.json → Debug configuration (e.g. for J-Link)
├── cmake-variants.yaml → Build variants (Debug/Release + bootDisk)
Place the `.vscode` folder under:
mv ~/workspace/MBa117xL.SW.MCU.BSP/templates .vscode
You can use the templates provided in the `templates/` folder of the repository as a starting point.
**Open VS-Code**
code .
==== Building examples ====
{{ :en:arm:step_1.webp |}}
[github_markdown url="https://raw.githubusercontent.com/tq-systems/MBa117xL.SW.MCU.BSP/main/README.md" section="Building Target"]