Reference & Development
Developer-facing details that don’t belong to a single subsystem.
Code style, lint & format
- Formatting: C/C++ uses
clang-formatwith the repository’s.clang-format(CONTRIBUTING.md:56). The canonical config lives atcorepdk/ubs/.clang-format. - Static analysis:
clang-tidyconfig atcorepdk/ubs/.clang-tidy, with additional rules underetc/clang-tidy/. Setup installsclang-tidy-18/clang-format-18(see Setup). - Docs: Doxygen is configured by
etc/doxygen.cfgwith styling inetc/doxygen.css;doxygen/graphvizare host prerequisites. - Coverage:
lcovplus theetc/plugins/nv-coverage-check.mkplugin andsrc/nv/coverage/support coverage builds.
Contribution rules
CONTRIBUTING.mdstates external code contributions are not currently accepted (Issues welcome; external PRs may be closed).
For maintainers, two rules affect every source change:
- DCO sign-off: every commit must be signed off with
git commit -s(CONTRIBUTING.md:22). - SPDX headers: new/modified source files carry SPDX headers
(
CONTRIBUTING.md:31) —SPDX-FileCopyrightText+SPDX-License-Identifier: Apache-2.0, as seen atop every file (e.g.src/nv/nv.h:2).
Directory reference
| Path | Contents |
|---|---|
mcu_build.sh |
Top-level build/sign orchestrator |
corepdk/ubs/ |
UBS make system (bin/, etc/, share/, src/, ubs) |
corepdk/modules/ |
Shared C++ modules: mctp-cpp, pldm-fd, spdm |
corepdk/platforms/ |
Platform glue (e.g. mcxn236) |
etc/platforms/, etc/projects/, etc/plugins/ |
Make fragments (see Build System) |
etc/clang-tidy/, etc/doxygen.cfg |
Tooling configs |
libexec/ |
Toolchains + NXP SDK (provided at build time) |
src/nv/ |
Firmware subsystems (nv::) |
src/sys/ |
Per-SoC BSP |
src/boards/, src/projects/ |
Boards and buildable projects |
src/overrides/ |
SDK override sources |
Full chapter → source mapping is in the Source map.
Continuous integration
Upstream CI is GitLab CI (.gitlab-ci.yml), with build and test
stages (.gitlab-ci.yml:1). A build matrix (.gitlab-ci.yml:18) covers
the mcxn547helloworld (mcxn556-both) and p3957_cxx
(mcxn556-core0) projects. The build job (.gitlab-ci.yml:29)
symlinks the toolchains/SDK, patches the SDK, installs spsdk, and runs
the same command developers use (.gitlab-ci.yml:56):
./mcu_build.sh PROJECT=${PROJECT} BOARD=${BOARD} \
PLATFORM=${PLATFORM} MODE=${MODE} SIGN_KEYSET=local RUN_LOCAL=1
Note: this guide’s own site is deployed separately by GitHub Actions (
.github/workflows/deploy-pages.yml); the GitLab CI above builds the firmware, not the guide.
Next
- Appendices — glossary, symbol index, trace methodology.