nxp-mcuxpresso / mcux-sdk

MCUXpresso SDK
BSD 3-Clause "New" or "Revised" License
333 stars 145 forks source link

MCUXpresso SDK: mcux-sdk

NXP_logoEN|中文 Version Contributors Issues PRs Welcome

MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate application development with Arm® Cortex®-M-based devices from NXP, including its general purpose, crossover and Bluetooth™-enabled MCUs. This project provides an alternative way for user to achieve the source code of MCUXpresso SDK besides SDK builder and MCUXpresso IDE.

The whole MCUXpresso SDK delivery is composed of separate project/repo deliveries. The idea we split the whole SDK delivery to separate projects/repos is inspired by Zephyr, and the projects are split following below rules:

In this way we want to benefit user from below aspects:

  1. Avoid huge size in a single repository.
  2. Provide flexibility for user to select needed projects to build their application.
  3. Provide ability for user to fetch needed project version to build their application.

We also uses Zephyr west tool to do multi-repository management, it allows user to self create west.yml to select needed projects for downstream use.

Overview

This mcux-sdk project/repo provides the fundamental support for all NXP hot parts:

The project can work solely, if you only want to get the fundamental support for SoC(s) or board(s), you just use the original Git way to clone and checkout the project.

The project is also the main repository to achieve the whole SDK delivery, it contains the west.yml which keeps description and revision for other projects in the overall MCUXpresso delivery. Not all MCUXpresso SDK middleware are available in this MCUXpresso SDK Github delivery, checking west.yml for each release you will see the available middleware included in the release. The superset of available middlewares is listed as below for your information:

How to get the whole SDK delivery

You need to have both Git and West installed in order to get a new delivery of the whole SDK or update the existing SDK deliveries. Follow below guide according to your scenario:

Releases

There are two types of release in the project. The MCUXpresso SDK release and GitHub Main SDK release. Below description uses MCUX release short for MCUXpresso SDK release, use Main release short for GitHub Main SDK release. Note currently we only have MCUX releases.

MCUX Release

The MCUX release launches once a new release is available on SDK Builder. Users previously using SDK Builder could easily find the exact same code base MCUX release with same 2.x.y version of SDK archive package, software examples build/run quality are guaranteed in the release. MCUX releases will be prefixed with 'MCUX_', and every release will be merged into main branch to ensure main branch has all released boards/socs support.

The "MCUX_" releases are categorized into mainline releases and NPI release.

Each MCUX release is made on previous mainline release tag/NPI release tag, thus user could easily check the difference between two releases using git diff command.

Main Release

The Main release is a regular release made in main branch. It releases the latest code base and feature set on main branch, which is expected to include all the previous 'MCUX' release content and new enablement on main branch for NXP hot parts. **Main releases will be prefixed with 'MAIN'**.

Below figure takes 2.9.0 and 2.10.0 release as an example to show the relationship between MCUX release and Main release. Release Introduction

Supported development tools and systems

Getting Started

See Getting Start Guide to start explore the project.

License

Most of software in the project is open-source and licensed under BSD-3-Clause, see COPYING_BSD-3. Whole license information for the project could be found in SW-Content-Register.txt

Contribution

Contributions are greatly welcomed! For detail guideline of contribution please check Contribution Guide.