MCUXpresso IDE User Guide. NXP MCUXpresso IDE
Add to My manuals155 Pages
MCUXpresso IDE is a low-cost microcontroller (MCU) development platform ecosystem from NXP that provides an end-to-end solution enabling engineers to develop embedded applications from initial evaluation to final production. It includes the MCUXpresso IDE, MCUXpresso SDKs, MCUXpresso Config Tools, and a range of development boards.
advertisement
▼
Scroll to page 2
of
155
![MCUXpresso IDE User Guide. NXP MCUXpresso IDE | Manualzz MCUXpresso IDE User Guide. NXP MCUXpresso IDE | Manualzz](http://s3.manualzz.com/store/data/025915489_1-dd5da040a813842e9ae568f5ba819312-360x466.png)
NXP Semiconductors MCUXpresso IDE User Guide
MCUXpresso IDE User Guide -
User Guide
4 July, 2017
Copyright © 2017 NXP Semiconductors
All rights reserved.
All information provided in this document is subject to legal disclaimers
Rev. 10.0.2 — 4 July, 2017
© 2017 NXP Semiconductors. All rights reserved.
ii
advertisement
Key Features
- Eclipse based IDE
- GNU Toolchain
- Advanced Project Wizards
- Multicore Support
- Native Debugger
- Library Support
- Trace Functionality
- Power Measurement
Related manuals
Frequently Answers and Questions
What is MCUXpresso IDE?
It is a low-cost microcontroller (MCU) development platform ecosystem from NXP that provides an end-to-end solution enabling engineers to develop embedded applications from initial evaluation to final production.
What features does MCUXpresso IDE provide?
The MCUXpresso IDE is a fully featured software development environment for NXP’s ARM-based MCUs, and includes all the tools necessary to develop high-quality embedded software applications in a timely and cost effective fashion.
What are the main components of the MCUXpresso platform ecosystem?
The MCUXpresso platform ecosystem includes: The MCUXpresso IDE, MCUXpresso SDKs, MCUXpresso Config Tools, and a range of development boards.
What types of microcontrollers are supported by MCUXpresso IDE?
MCUXpresso IDE is a software development environment for creating applications for NXP’s ARM Cortex-M based MCUs including “LPC” and “Kinetis” ranges.
Download
PDF
advertisement
Table of contents
- 2 MCUXpresso IDE User Guide
- 3 Table of Contents
- 7 1. Introduction to MCUXpresso IDE
- 7 1.1 MCUXpresso IDE Overview of Features
- 7 1.1.1 Summary of Features
- 9 1.1.2 Supported Debug Probes
- 9 1.1.3 Development Boards
- 9 LPCXpresso Boards for LPC
- 10 Freedom and Tower Boards for Kinetis
- 12 2. IDE Overview
- 12 2.1 Documentation and Help
- 13 2.2 Workspaces
- 13 2.3 Perspectives and Views
- 14 2.4 Major Components of the Develop Perspective
- 17 3. Debug Solutions Overview
- 18 3.1 A note about Launch Configuration files
- 21 3.2 LinkServer Debug Connections
- 21 3.3 LinkServer Debug Operation
- 22 3.4 LinkServer Global and Live Global Variables
- 25 3.5 LinkServer Troubleshooting
- 25 3.5.1 Debug Log
- 26 3.5.2 Flash Programming
- 27 3.5.3 LinkServer executables
- 27 3.6 P&E Debug Connections
- 27 3.7 P&E Debug Operation
- 28 3.7.1 P&E Differences from LinkServer Debug
- 28 3.7.2 P&E Micro Software Updates
- 28 3.8 SEGGER Debug Connections
- 29 3.8.1 SEGGER software installation
- 30 SEGGER software un-installation
- 30 3.9 SEGGER Debug Operation
- 30 3.9.1 SEGGER Differences from LinkServer Debug
- 31 3.10 SEGGER Troubleshooting
- 33 4. SDKs and Pre-Installed Part Support Overview
- 33 4.1 Pre-installed Part Support
- 33 4.2 SDK Part Support
- 34 4.2.1 Important notes for SDK users
- 34 Only SDKs created for MCUXpresso IDE can be used
- 34 Shared Part Support handling
- 34 Building a Fat SDK
- 34 Uninstallation Considerations
- 34 Sharing Projects
- 35 4.2.2 Differences in Pre-installed and SDK part handling
- 35 4.3 Viewing Pre-installed Part Support
- 36 4.4 Installing an SDK
- 38 4.4.1 Advanced Use: SDK Importing and Configuration
- 40 5. Creating New Projects using installed SDK Part Support
- 40 5.1 New Project Wizard
- 42 5.1.1 SDK New Project Wizard: Basic Project Creation and Settings
- 44 5.1.2 SDK New Project Wizard: Advanced Project Settings
- 46 5.2 SDK Build Project
- 48 6. Importing Example Projects (from installed SDKs)
- 49 6.1 SDK Example Import Wizard
- 49 6.1.1 SDK Example Import Wizard: Basic Selection
- 52 6.1.2 SDK Example Import Wizard: Advanced options
- 53 6.1.3 SDK Example Import Wizard: Import from XML fragment
- 55 6.1.4 Importing Examples to non default locations
- 56 7. Creating New Projects using Pre-Installed Part Support
- 56 7.1 New Project Wizard
- 57 7.2 Creating a Project
- 58 7.2.1 Selecting the Wizard Type
- 59 7.2.2 Configuring the Project
- 59 7.3 Wizard Options
- 59 7.3.1 LPCOpen Library Project Selection
- 60 7.3.2 CMSIS-CORE Selection
- 61 7.3.3 CMSIS DSP Library Selection
- 61 7.3.4 Peripheral Driver Selection
- 61 7.3.5 Enable use of Floating Point Hardware
- 61 7.3.6 Code Read Protect
- 61 7.3.7 Enable use of Romdivide Library
- 61 7.3.8 Disable Watchdog
- 62 7.3.9 LPC1102 ISP Pin
- 62 7.3.10 Memory Configuration Editor
- 62 7.3.11 Redlib Printf Options
- 62 7.3.12 Project Created
- 63 8. Importing Example Projects (from the file sytem)
- 63 8.1 Code Bundles for LPC800 Family devices
- 63 8.2 LPCOpen Software Drivers and Examples
- 64 8.3 Importing an Example Project
- 65 8.3.1 Importing Examples for the LPCXpresso4337 Development Board
- 66 8.4 Exporting Projects
- 67 8.5 Building Projects
- 67 8.5.1 Build Configurations
- 68 9. Debugging a Project
- 68 9.1 Debugging overview
- 69 9.1.1 Debug Probe Selection Dialog (Probe Discovery)
- 71 9.1.2 Controlling Execution
- 73 10. LinkServer Flash Support
- 73 10.1 Default vs Per-Region Flash drivers
- 73 10.2 Special case Flash drivers for LPC MCUs
- 73 10.2.1 LPC18xx / LPC43xx Internal Flash Drivers
- 74 10.2.2 SPIFI Flash Drivers
- 74 Flash devices supported by our SPIFI Flash Drivers
- 75 10.3 Configuring projects to span multiple flash devices
- 75 10.4 Kinetis Flash Drivers
- 76 10.5 Using the LinkServer flash programmer
- 76 10.5.1 The GUI flash programmer
- 77 Programming an .axf or .bin file
- 78 Flash Mass Erase
- 79 Kinetis Flash Recovery
- 79 10.5.2 The command line flash programmer
- 81 11. C/C++ Library Support
- 81 11.1 Overview of Redlib, Newlib and NewlibNano
- 81 11.1.1 Redlib extensions to C90
- 81 11.1.2 Newlib vs NewlibNano
- 82 11.2 Library variants
- 83 11.3 Switching the selected C library
- 83 11.3.1 Manually switching
- 84 11.4 What is Semihosting?
- 84 11.4.1 Background to Semihosting
- 84 11.4.2 Semihosting implementation
- 84 11.4.3 Semihosting Performance
- 84 11.4.4 Important notes about using semihosting
- 85 11.4.5 Semihosting Specification
- 85 11.5 Use of printf
- 85 11.5.1 Redlib printf variants
- 85 Character vs String output
- 85 Integer only vs full printf (including floating point)
- 85 11.5.2 NewlibNano printf variants
- 86 11.5.3 Newlib printf variants
- 86 11.5.4 Printf when using LPCOpen
- 86 11.5.5 Printf when using SDK
- 86 11.5.6 Retargeting printf/scanf
- 87 Redlib
- 87 Newlib / NewlibNano
- 87 11.5.7 How to use ITM Printf
- 87 ITM Overview
- 88 ITM printf with SDK
- 88 ITM printf with LPCOpen
- 88 11.6 itoa() and uitoa()
- 88 11.6.1 Redlib
- 89 Example invocations
- 89 Standards compliance
- 89 11.6.2 Newlib/NewlibNano
- 89 11.7 Libraries and linker scripts
- 91 12. Memory Configuration and Linker Scripts
- 91 12.1 Introduction
- 91 12.2 Managed Linker Script Overview
- 92 12.3 How are managed linker scripts generated?
- 93 12.4 Default image layout
- 94 12.5 Examining the layout of the generated image
- 94 12.5.1 Linker --print-memory-usage
- 94 12.5.2 arm-none-eabi-size
- 95 12.5.3 Linker Map files
- 95 12.5.4 Symbol Viewer
- 95 Viewing Symbols in the Viewer
- 95 Using the Symbol Viewer
- 96 Other utilities
- 96 12.6 Other options affecting the generated image
- 96 12.6.1 LPC MCUs – Code Read Protection
- 97 CRP : Preinstalled MCUs
- 97 CRP : MCUs installed by Importing an SDK
- 97 12.6.2 Kinetis MCUs – Flash Config blocks
- 98 12.6.3 Placement of USB data
- 99 12.7 Modifying the generated linker script / memory layout
- 99 12.8 Using the Memory Configuration Editor
- 100 12.8.1 Editing a Memory Configuration
- 103 12.8.2 Device specific vs Default Flash Drivers
- 104 12.8.3 Restoring a Memory Configuration
- 104 12.8.4 Copying Memory Configurations
- 104 12.9 More advanced heap/stack placement
- 105 12.9.1 MCUXpresso style heap and stack
- 106 12.9.2 LPCXpresso style heap and stack
- 107 12.9.3 Reserving RAM for IAP Flash Programming
- 107 12.9.4 Stack checking
- 108 12.9.5 Heap Checking
- 108 12.9.6 Placement of specific code/data items
- 108 Placing data into different RAM blocks
- 109 Noinit Memory Sections
- 110 Making global variables noinit
- 110 Placing code/rodata into different FLASH blocks
- 111 Placing specific functions into RAM blocks
- 112 Long branch veneers and debugging
- 112 Reducing Code Size when support for LPC CRP or Kinetis Flash Config Block is enabled
- 112 12.10 Freemarker Linker Script Templates
- 113 12.10.1 Basics
- 113 12.10.2 Reference
- 113 Linker script template hierarchy
- 115 Linker script search paths
- 115 Linker script templates
- 115 Predefined variables (macros)
- 117 Extended variables
- 117 Outputting variables
- 117 12.11 Freemarker Linker Script Template Examples
- 117 12.11.1 Relocating code from FLASH to RAM
- 118 Relocating particular objects into RAM
- 118 Relocating particular libraries into RAM
- 119 Relocating majority of application into RAM
- 120 12.11.2 Configuring projects to span multiple flash devices
- 120 12.12 Disabling Managed Linker Scripts
- 122 13. Multicore Projects
- 122 13.1 LPC43xx Multicore Projects
- 122 13.2 LPC541xx Multicore Projects
- 123 14. Appendix
- 123 14.1 Quick Settings
- 123 14.2 Launch Configurations
- 125 14.2.1 Editing a Launch Configuration (LinkServer)
- 126 14.3 Common Debugging Operations
- 126 14.3.1 Connecting to a running target (attach)
- 126 LinkServer
- 127 P&E
- 127 SEGGER JLink
- 128 14.3.2 Controlling the initial breakpoint (on main)
- 128 LinkServer
- 129 P&E
- 129 SEGGER JLink
- 129 14.3.3 Disconnect behaviour
- 130 LinkServer
- 130 P&E
- 130 SEGGER JLink
- 130 14.4 Breakpoints
- 130 14.4.1 Breakpoints Resources
- 131 14.4.2 Skip All Breakpoints
- 131 14.5 Watchpoints
- 133 14.5.1 Using Watchpoints to monitor stack depth
- 133 14.6 How do I switch between Debug and Release builds?
- 133 14.6.1 Changing the build configuration of a single project
- 134 14.6.2 Changing the build configuration of multiple projects
- 134 14.7 Editing Hints and Tips
- 134 14.7.1 Multiple views onto the same file
- 134 14.7.2 Viewing two edited files at once
- 134 14.7.3 Source folding
- 135 14.7.4 Editor templates and Code completion
- 135 14.7.5 Brace matching
- 135 14.7.6 Syntax coloring
- 135 14.7.7 Comment/uncomment block
- 136 14.7.8 Format code
- 136 14.7.9 Correct Indentation
- 136 14.7.10 Insert spaces for tabs in editor
- 136 14.7.11 Replacing tabs with spaces
- 136 14.8 Hardware Floating Point Support
- 137 14.8.1 Floating Point Variants
- 137 14.8.2 Floating point use – Preinstalled MCUs
- 137 14.8.3 Floating point use – SDK installed MCUs
- 138 14.8.4 Modifying floating point configuration for an existing project
- 138 14.8.5 Do all Cortex-M4 MCUs provide floating point in hardware?
- 138 14.8.6 Why do I get a hard fault when my code executes a floating point operation?
- 138 14.9 LinkServer Scripts
- 138 14.9.1 Supplied Scripts
- 139 14.9.2 Debugging code from RAM
- 140 14.9.3 LinkServer Scripting Features
- 142 14.10 RAM projects with LinkServer
- 143 14.10.1 Advantages of developing with RAM projects
- 143 14.11 The Console View
- 143 14.11.1 Console types
- 144 Build Console and Global Build Console
- 144 FreeRTOS Task Aware Debugger Console
- 144 gdb traces and arm-none-eabi-gdb Consoles
- 144 RedlinkServer/LinkServer Console
- 144 Debug messages Console
- 144 Semihosting Console
- 144 14.11.2 Copying the contents of a console
- 145 14.11.3 Relocating and duplicating the Console view
- 146 14.12 Using and troubleshooting LPC-Link2
- 146 14.12.1 LPC-Link2 hardware
- 147 14.12.2 Softloaded vs Pre-programmed probe firmware
- 147 14.12.3 LPC-Link2 firmware variants
- 148 14.12.4 Manually booting LPC-Link2
- 148 LPC-Link2 USB Details
- 149 Booting from the command line
- 149 Booting from the GUI
- 150 14.12.5 LPC-Link2 windows drivers
- 150 14.12.6 LPC-Link2 failing to enumerate
- 150 To find the version number of the LPC-Link2 VCOM driver
- 151 Removing the obsolete 1.0.0.0 LPC-LinkII UCOM driver
- 152 14.12.7 Troubleshooting LPC-Link2
- 152 14.13 Make fails with Virtual Alloc pointer is null error
- 153 14.14 Creating bin, hex or S-Record files
- 153 14.14.1 Simple conversion within the IDE
- 154 14.14.2 From the command line
- 154 14.14.3 Automatically converting the file during a build
- 154 14.14.4 Binary files and checksums
- 154 14.15 Post-build (and Pre-build) steps
- 155 14.15.1
- 155 Temporarily removing post-build steps