NXP QN908x CPU Support Package

This package contains project templates and system files for the NXP QN908x.

CrossWorks Version 4 Installation Instructions

To install this support package
  1. Click the Tools > Package Manager menu option to open the package manager window.
  2. Right click on the NXP QN908x CPU Support Package entry and select Install Selected Packages.
  3. Click Next to take you to the summary page.
  4. Click Next to install the package.
  5. Click Finish to close the package manager window.
  6. Click the Tools > Show Installed Packages.
  7. Click on the NXP QN908x CPU Support Package link to view the package and its contents.
To manually install this support package
  1. If you have not done so already, follow the CMSIS 5 CMSIS-Core(M) Support Package and CrossWorks Tasking Library Package installation instructions.
  2. Download the file QN908x.hzq using your web browser.
  3. Click the Tools > Manually Install Packages menu option.
  4. Select the file you have just downloaded to install the package.
  5. Click the Tools > Show Installed Packages.
  6. Click on the NXP QN908x CPU Support Package link to view the package and its contents.

Release Notes

4.0

Documentation

Creating QN908x Projects

To create a new QN908x project
To import IAR project files supplied with the NXP QN908x SDK
To build and debug an application the runs in Flash memory
To make the application startup from reset

QN908x 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 QN908x 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 QN908x projects the set of placements are:

Stack and Heap Sizes

The default stack and heap sizes are set to be 1024 and 1024 bytes by default when a project is created.

Target Startup Code

The startup code startup_QN908x.s is common to all QN908x 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 SRAM.

The startup code declares symbolic names (and weak implementations) for each interrupt service routine, for example the RTC_SEC_IRQHandler function will be called when the RTC second match interrupt occurs. The names of the interrupt service routines match those in the CMSIS header file. If you are porting code that has application specific interrupt service routines then you can use preprocessor definitions to rename the declared symbolic name for example RTC_SEC_IRQHandler=RTC_SEC_DriverIRQHandler.

Target Reset Script

The reset script QN908x_Target.js is used by the debugger to reset the target board.