
NXP LPC54000 CPU Support Package
Warning: This is a legacy package, it has been provided to keep existing projects working and is not recommended for new projects. This package has been replaced by NXP LPC54000 CPU Support Package.
This package contains project templates and system files for the NXP LPC54000.
CrossWorks Version 3 Installation Instructions
- To install this support package
-
- Click the Tools > Package Manager menu option to open the package manager window.
- Right click on the NXP LPC54000 CPU Support Package entry and select Install Selected Packages.
- Click Next to take you to the summary page.
- Click Next to install the package.
- Click Finish to close the package manager window.
- Click the Tools > Show Installed Packages.
- Click on the NXP LPC54000 CPU Support Package link to view the package and its contents.
- To manually install this support package
-
- If you have not done so already, follow the CMSIS 4 CMSIS-CORE Support Package, CMSIS 4 CMSIS-DSP Support Package and CrossWorks Tasking Library Package installation instructions.
- Download the file LPC54000.hzq using your web browser.
- Click the Tools > Manually Install Packages menu option.
- Select the file you have just downloaded to install the package.
- Click the Tools > Show Installed Packages.
- Click on the NXP LPC54000 CPU Support Package link to view the package and its contents.
- To install this support package using other versions
Release Notes
3.3
- Fixed crash when using simulator on Linux.
- Fixed example projects not building on Linux.
3.2
- Add support for LPC54S60x devices.
3.1
- Add initial support for LPC5460x devices.
- Fix SRAM startup code setup problem for LPC5411x devices.
3.0
- Initial Release. This package replaces the LPC5410x CPU support package.
Documentation
Creating LPC54000 Projects
To create a new LPC54000 project
- Select the File > New > New Project menu item.
- Select the appropriate Generic LPC5410x from the Categories list.
- Select the required project template type from the Templates list.
- Set the required project name and location directory.
- Click OK.
To build and debug an application the runs in Flash memory
- Select the project to work on by using the Project > Set Active Project menu option.
- Select the configuration you require by using the Build > Set Active Build Configuration menu option.
- Right click on the project node in the project explorer and select the Flash placement property.
- Build the project by using the Build > Build Project menu option.
- Connect to the appropriate target in the target window.
- Download and start debugging the current project by using Debug > Start Debugging.
To build and debug a dual-core application that runs in Flash memory
- Load the sample dual-core project click here.
- Select the _CM4 project as the active project and build it.
- The _CM0 project will be built because it is a dependent project.
- Connect to the target and start debugging. This will load the _CM4 project and then load the _CM0 project because the "Debug Dependent Projects" project property is set to "Yes".
- The debugger will stop in the _CM4 project.
- You can now debug the _CM4 project.
- You can select the _CM0 project using the toolbar in the text editor window.
- The debugger will stop in the _CM0 project.
- You can now debug the _CM0 project.
- At any time you can switch projects noting that the debug state of the project is not changed by the project switch.
- Using the Project Explorer right click on the Solution 'LPC5410x Dual Core Samples' node and select Save Solution As... to take a copy of the project file.
LPC54000 Project Specifics
Target Processor
Once a project has been created you can select different target processors by right clicking on the project node in the project explorer and selecting the Target Processor entry.
Selecting the target processor will specify the memory map that is used for the build and debug. You can view the selected memory map by right clicking on the project node in the project explorer and selecting Edit Memory Map.
Section Placement
CrossStudio for ARM supports LPC54000 projects running applications in a number of different memory configurations. You can select the memory configuration you require by setting the Section Placement property.
For LPC5410x projects the set of placements are:
- Flash application runs in internal Flash memory.
- Flash Vectors In RAM application runs in internal Flash memory, exception vectors are in RAM.
- RAM application runs in RAM memory.
Stack and Heap Sizes
The default stack and heap sizes are set to be 256 and 256 bytes by default when a project is created.
Target Startup Code
The startup code LPC54000_Startup.s is common to all LPC54000 processors. There are a set of preprocessor defines that configure the startup code and are documented in the startup file itself. The startup code calls out to a weak symbol SystemInit with the stack pointer set to the top of of SRAM. The SystemInit function can be used to set the CPU clock or configure any external memories prior to the C initialisation code as such it cannot access initialised static data. Note that the SystemInit() function is called with the stackpointer pointing to the end of the first block of SRAM.
The startup code declares symbolic names (and weak implementations) for each interrupt service routine, for example the GINT0_IRQHandler function will be called when the GINT interrupt occurs. If you are porting code that has different interrupt service routines names then you can use preprocessor definitions to rename the declared symbolic name for example GINT0_IRQHandler=GINT0ISR.
Target Reset Script
The reset script LPC5410x_Target.js is used by the debugger to reset the target board.
Memory Simulator
An LPC54000 memory simulator is provided that simulates the memories of the various LPC5410x devices. The memory simulation parameter (which is set by the Target Processor selection) specifies the device name, the size of the internal Flash and RAM memories. Note that the power api ROM is not simulated so you will have to modify the startup code by building with NO_SYSTEM_INIT defined.
CMSIS support
CMSIS header files and library are referenced as part of the new project setup.
CTL support
The file ctl_LPC54000.c implements the CTL system timer using the standard Cortex-M SysTick timer. The timer is configured to interrupt at approximately a 10 millisecond rate and increment the CTL system timer by 10 to give a millisecond timer.
The CTL interrupt support functions ctl_global_interrupts_set, ctl_set_priority, ctl_unmask_isr and ctl_mask_isr are implemented in this file. The implementation uses the lowest half of the available NVIC priorities (top bit set in the priority) for CTL interrupts.