Instructions to build P3957 FW
Use Ubuntu 24.04
- Install package
apt-get update && apt-get install -y --no-install-recommends \
git git-lfs git-delta ca-certificates curl locales \
gawk sed xxd jq rsync make groff ncurses-bin \
gnupg python3 python3-pip python3-dev python3-clang \
openssh-client clang-tidy-18 clang-format-18 \
lcov gcc-13 g++-13 \
doxygen graphviz asciidoctor asciidoc gem javacc ruby-rouge \
file dos2unix less patch
- Install python package
pip3 install --break-system-packages \
jsonschema==4.23.0 \
ruamel.yaml==0.18.14 \
spsdk==2.3.0
- Link make
ln -sf /usr/bin/make corepdk/ubs/bin/make
- Download arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi.tar.xz
- Extract arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi.tar.xz into
libexec/toolchain/ - Download gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
- Extract gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 into
libexec/toolchain/ - Download alire
- Run
alr get gnat_arm_elf=14.2.1 - Move gnat_arm_elf_14.2.1_524d4d41 into
libexec/toolchain/
- Download FRDM-MCXN236 SDK version 25.03.00 from https://mcuxpresso.nxp.com/en
- Select "mbedTLS", "NXP ELS PKC", "FreeRTOS" and "USB Host, Device, OTG Stack" option in "Developer Environment Settings"
- Extract 25.03.00 SDK into
libexec/sdk/SDK_25_03_00_FRDM-MCXN236
mkdir -p libexec/sdk/SDK_25_03_00_FRDM-MCXN236
tar -xvzf SDK_25_03_00_FRDM-MCXN236.tar.gz -C libexec/sdk/SDK_25_03_00_FRDM-MCXN236
cd libexec/sdk/SDK_25_03_00_FRDM-MCXN236
patch -p1 < ../../patch/mcu.patch
Artifact will be generated under build folder
./ubs build --local PROJECT=p3957 PLATFORM=mcxn236 BOARD=p3957 MODE=rel
./ubs local-sign --local PROJECT=p3957 PLATFORM=mcxn236 BOARD=p3957 MODE=rel
You can also build and sign FW in Docker.
# Build Docker image if you didn't build before
docker build -f ./libexec/ubs.dockerfile -t opensma .
# Run Docker image
docker run --rm -it --user=${UID}:${GID} -v $(pwd):/opensma opensma
# Build and sign FW
./ubs build --local PROJECT=p3957 PLATFORM=mcxn236 BOARD=p3957 MODE=rel
./ubs local-sign --local PROJECT=p3957 PLATFORM=mcxn236 BOARD=p3957 MODE=rel