The 24.12.00 GitHub SDK release offers customers the power to use Git as a source control management solution. You'll be able to work in large teams on a common shared code base. Changes from NXP are reflected in Git status notifications. NXP also uses the West meta tool to share a recipe for what Git repositories are included in official SDK releases. This also started the introduction of customer access to SDK “previews”. Two previews are published to GitHub for customers to evaluate in the months prior to each quarterly release. Customers are now able to test if patches resolve a product requirement. The preview also provides early progress in code development on new features due for the next quarterly release.
For those who use the MCUXpresso SDK dashboard to build your archive/zip SDK package, the build and import flow remains the same. PDF files are no longer integrated to the zipped folder, but can be found in the SDK Documentation website.
This guide will focus on those who would like to migrate to the new SDK, but still prefer to use the "archive" SDK. The zipped folder which can be used across different toolchains such as MCUXpresso IDE, IAR, KEIL and VS Code.
In addition we'll go over what differences you can expect with the new SDK and how to port an existing project from an SDK older than 24.12.00.
The MCUXpresso SDK is complimentary and includes full source code under a permissive open-source license for all hardware abstraction and peripheral driver software. The Archive SDK can be installed using the MCUXpresso SDK Dashboard. Select the device and toolchain of preference you are working with. Download the zipped archive to continue. In this guide we'll focus on MCUXpresso IDE with the FRDM-MCXN236.
1. Choose your Operating System
2. Choose the toolchain
3. It is recommended to choose all of the middleware offered
4. Build SDK
Next your dashboard will appear with the Download option. Press Download, then click Download SDK Archive. Then agree to terms and conditions to download the zipped folder.
This folder can be dragged and dropped to your MCUXpresso IDE "Installed SDKs" window.
Let's say you only want to update the SDK and you have a working application in your workspace. For example, here I have an example which is associated to an older SDK version.
Updating the associated SDK should be automatic. It may take some time after updating the SDK for it to take effect. In addition you can restart the IDE. Once ready, viewing the version it is now seen as the latest SDK I loaded.
Build and debug your application as normal if no changes are required.
Note: Updating the associated SDK does not mean that the files within your application will be changed automatically, this can be done manually by looking at the different sources you need in your application. You can also refresh the SDK components to update all the files withing your project (however not recommended as this will most likely cause conflicts, depending on the complexity of project). Adding drives using the SDK management tool, will inevitably grab the drivers from the latest SDK and prompt you to update other files that may have dependencies.
Another scenario you may encounter, is if you already have an existing application from an older SDK but would like to import it to your current workspace with the updated SDK.
1. Go to QuickStart Panel and select Import project(s) from file system.
2. Browse your PC, for the zipped or unzipped application.
3. Click finish once your project has been selected.
Finally a warning will appear notifying that the SDK versions do not match and ask if you would like to make the new SDK persistent or not for this project. If the intention is to update to the new SDK and port over changes, then click OK. If not, then uncheck the option and continue.
Build and debug your application as normal.
Note: Updating the associated SDK does not mean that the files within your application will be changed automatically, this can be done manually by looking at the different sources you need in your application. You can also refresh the SDK components to update all the files withing your project (however not recommended as this will most likely cause conflicts, depending on the complexity of project). Adding drives using the SDK management tool, will inevitably grab the drivers from the latest SDK and prompt you to update other files that may have dependencies.
The following recommendations are to provide a path to quickly resolve any conflicting issues that may arise when porting a project based on an older SDK when moving to the new SDK. When copying sources from one to another it is possible that some dependencies in drivers and middleware may cause conflict and compiling errors. As all projects are different and have a varying degree of complexity the following guidelines are flexible and can be used or disregarded accordingly.
Lets take an example OTA_ROM_SERVER example from SDK 2.16.100 and port it to SDK 25.03.00 using the archive SDK in MCUXpresso IDE. For simplicity I'll refer to the projects as "old" and "new'.
Think about why you need to update your application to the new SDK. Is there an update in a driver you are interested in? Or new middleware component available?
Adding new drivers or middleware.
Another scenario may be that you would like to update to the new SDK regardless if you need the changes or not. Keep in mind that moving from SDK 24.12.00 to 25.03.00 will most likely have minor changes, as opposed to moving from 2.16.100 to 24.12.00 onwards. Since the new SDK was introduced in 24.12.00, major structural changes were introduced, therefore it will require a bit more effort to change your application to the new SDK.
The main benefit of starting from a similar project, is that most of the middleware, components and drivers will already be integrated. Meaning that your main focus will be on custom board files and application specific sources.
In addition there may be preprocessor definitions or paths that if not known may make things much smoother when transitioning to the new SDK.
On the other hand, it is also possible to start from a blank project. Use the SDK management tool to import only the necessary middleware, components or drivers you need.
This option gives you a blank canvas, but may be considered a bit more challenging as you need to add any preprocessor definitions or changes in the project settings that may be overlooked when starting with a similar project.
In this guide, we'll go over the first option, as I consider this the path of least resistance in terms of the amount of conflicts you will have to navigate through when building the new project.
Steps taken:
Note: If you need to add a driver or different middleware component. See above section under 'What changes are needed?'
Let's look at the differences between an example from SDK 2.16.100 and SDK 25.03.00. In this project we are not looking at the content changes with individual drivers. That can be viewed in the changelog available in the SDK Documentation per SDK version.
The changes seen below are structure changes in the project and/or files that have been added or deleted.
CMSIS:
Board:
Device:
Drivers:
Flash:
Source:
Utilities:
If you find that there is a conflict inside the middleware you just added or updated. It is not recommended to try and resolve conflicts my mix and matching files from old SDK with the new SDK, this may take you in an endless path often going in circles.
Instead check the following against your original application:
Refreshing the SDK Component can be done with the SDK Management tool.
Use this tool cautiously, it is a great tool as it will update all of the components and resolve most conflicts within the new drivers and middleware. However it is also possible that it will bring up many conflicts to your application as well as ask you to keep or replace many drivers which can become an overwhelming task.
I recommend to keep this as a last resort tool and if you have exhausted all other options.