Checking disassemble code is often needed for programmers when developing a project. This article will introduce two methods of generating disassemble file with GNU utility objdump under MCUXpresso IDE 10.1.0. If user needs demo code, please send me community internal message.
As part of my university engagement, I have posted an overview article about the new MCUXpresso IDE: (external link): MCUXPresso IDE: Unified Eclipse IDE for NXPs ARM Cortex-M Microcontrollers | MCU on Eclipse I hope you find it useful, Erich
This exercise demonstrates how to port a project using MCUXpresso IDE and SDK from one RT MCU to another. The exercise starts with an SDK demo project for the MIMXRT1060-EVK board, and ports to the IMXRT1050-EVKB board.
The " MCUXpresso IDE User Guide " installed with the IDE gives this warning:
changing a project’s associated MCU should not be undertaken unless you have a total grasp of the consequence of this change. Therefore rather than changing a project’s associated MCU, it is strongly recommended that instead a new project is generated for the desired MCU and this new project is edited as required. However, on occasion it may be expedient to reset a project’s MCU (and associated SDK)
I also recommend using a SDK project intended for the final MCU, and just port the application source files to it. But here are the steps to port the project. Also note, these two boards use different flash types by default. In this example, the IMXRT1050-EVKB was reworked to use the QSPI flash on the board following Appnote AN12108. Once the RT1050 EVK is modified to use the QSPI flash, it is the same flash used on the RT1060 EVK.
Resources used in this exercise:
IMXRT1050-EVKB board RevA1
MIMXRT1060-EVK board RevA2
MCUXpresso IDE v11.2.0
MCUXpresso SDK from Welcome | MCUXpresso SDK Builder
Attached to this post are two projects:
Starting_evkmimxrt1060_iled_blinky.zip was the original SDK example running on the RT1060 EVK
evkbmimxrt1050_iled_blinky_ported.zip is the final ported project, running from QSPI and RT1050
Following the " MCUXpresso IDE User Guide " section "Changing the MCU (and associated SDK)", changed the MCU to MIMXRT1052xxxxB. Also changed the flash driver to MIMXRT1050_SFDP_QSPI.cfx. If using Segger JLink, see https://wiki.segger.com/i.MXRT1050 to change the flash algorithm to QSPI.
And then changed the package/part number to MIMXRT1052DVL6B.
Changed the project name to evkbmimxrt1050_iled_blinky_ported
Changed the C Compiler Preprocessor definitions to the SDK device CPU_MIMXRT1052DVL6B
Replaced the files from the SDK package EVKB-IMXRT1050_SDK_2.8.2 (Note: MCUXpresso IDE supports "SDK Project Component Management", which could also be used for updating some of these files. See section "SDK Project Component Management" of the IDE user guide. But I replaced the files manually myself from the RT1050 SDK package):
device folder with the SDK files from EVKB-IMXRT1050_SDK_2.8.2.zip\devices\MIMXRT1052.
startup file from \EVKB-IMXRT1050_SDK_2.8.2.zip\devices\MIMXRT1052\mcuxpresso\
drivers files from \EVKB-IMXRT1050_SDK_2.8.2.zip\devices\MIMXRT1052\drivers\
board files, can use an SDK example for the ported device, or generate the clock_config and pin_mux files from the MCUXpresso Config tools
xip files would also need to be updated if flash configuration changes. In this example, both boards are using the same QSPI flash, and these files are the same.
Delete the .launch debug configuration file in the project. MCUXpresso IDE will regenerate it.
With these changes, the ported project runs on the RT1050 EVK.
This tip will show you how to re-trigger a full probe discovery. The feature is very useful for the customer who may use multiple debug probes. The first time you debug a project, MCUXpresso IDE will perform a probe discovery operation and display the discovered Debug Probes for selection. This will show all Supported Probes that are attached to your computer. (Here you can see the default P&E Micro OpenSDA of FRDM-KL25Z board was found.) For any future debug sessions, the stored probe selection will be automatically used to match the project being debugged with the previously used debug probe. This greatly simplifies the case where multiple debug probes are being used. However, if a debug operation is performed and the previously remembered debug probe cannot be found, then a debug probe discovery operation will be performed from within the same family e.g. MCUXpresso IDE LinkServer, P&E Micro or SEGGER J-Link. (Here you can see there are two Probe search options: Search for PEMicroDBB97E74 again and Search for other attached PE Micro probes.) But if you want to use a different debug probe(for example: debug FRDM-KL25Z board with SEGGER JLink), click this blue debug icon will meet problem. Supported Probes dialog only show P&E Micro probes, it will not search other family of debug probes e.g. MCUXpresso IDE LinkServer or SEGGER J-Link. Once a launch configuration file has been created, it will be used for the projects future debug operations. If you wish to use the project with a different debug probe, then simply delete the existing launch configuration and allow a new one to be automatically used on the next debug operation . Now click blue debug icon re-trigger a full probe discovery, and it show all Supported Probes that are attached to your computer again.
MCUXpresso SDK packages are downloaded as .zip files. If you are using a 3 rd party IDE such as IAR or Keil, then the package must be unzipped in order to access the project files. Also an unzipped SDK folder must be available for the MCUXpresso Config Tools. This is why the default recommendation is to go ahead and unzip a downloaded SDK package. However if using MCUXpresso IDE, then either the zipped or unzipped SDK can be imported into the MCUXpresso IDE. A zipped SDK will save disk space and can be imported into the IDE more quickly than an unzipped SDK folder. MCUXpresso’s IDE part support is extended by importing MCUXpresso SDKs into the IDE, so this can save some time if you need to add a new device. Also note that your SDK package must support MCUXpresso, and thus must have been recently created in the SDK Builder (after March 24th) with explicit support for MCUXpresso in the package, else you will get an error when trying to import it. When an MCUXpresso SDK zip package or folder is drag-and-dropped into the IDE, a copy of that zip/folder is made and put into the C:\Users\<user_name>\mcuxpresso\SDKPackages directory. Thus you can delete the original copy that was downloaded to save disk space. If the imported SDK was zipped, then when creating or importing example projects, the SDK source files are always copied into the workspace. If the imported SDK was unzipped, then you are given the option to either copy the SDK source files into the workspace (which is the default), or the SDK files can be referenced directly as linked references. If an SDK is imported as a zipped file, it can be later unzipped from inside the MCUXpresso IDE. This unzipping has been optimized so it’s much faster than unzipping it via a program like WinZip. When unzipping inside the MCUXpresso IDE, the zip file that was in the MCUXpresso SDKPackages folder will automatically be deleted from the hard drive once its finished unzipping. You can then use this unzipped folder for that SDK location when using the MCUXpresso Config tools. You can also add MCUXpresso SDKs by placing an SDK package (zipped or unzipped) into that default SDKPackages directory ( C:\Users\<user_name>\mcuxpresso\SDKPackage) and restarting the MCUXpresso IDE. Finally you can also specify additional directories that MCUXpresso IDE should search for SDK files (both zipped or unzipped) by going to Window -> Preferences -> MCUXpresso IDE -> SDK Options. This can be useful for keeping a repository of SDKs in a special location on your hard drive. For SDKs stored outside the default location though, the "Delete SDK" function is disabled inside the IDE, and the extra search paths are only saved per workspace, so if you choose another workspace, it won't know about the new SDK folders until you re-add the path. If multiple SDKs are found for the same device in different locations, the IDE select the package to use by priority on the list (top has priority). More detailed information on pre-installed part support and importing SDKs can be found in Section 4 of the MCUXpresso IDE User's Guide, as well as in this informative training video.