20
Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies Design West 2013

Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

Kickstarting your NXP embedded development with LPCXpresso

Andy Beeson Code Red Technologies Design West 2013

Page 2: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC April 28, 2013

2

Agenda

Overview of LPCXpresso

Instruction Trace – Including demonstration on LPCXpresso812 board

LPC800-MAX – Including preview demonstration of CMSIS-DAP debug connection

LPC43xx Multicore support – Including demonstration of creating multicore projects and preview of

debugging them in parallel

Page 3: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

What is LPCXpresso?

A prototyping AND development platform for NXP MCU’s developed jointly by:

NXP – The MCU

Embedded Artists – LPCXpresso development boards with built-in probe (LPC-Link) – Optional LPCXpresso add-on boards

• Additional add-on boards available from third parties

Code Red Technologies – Free of charge LPCXpresso IDE

• Built on Eclipse and GCC, but with many extensions to extend functionality and improve usability!

• Based on “Red Suite” – but C only with 128KB download limit • Windows / Linux / Mac OS X

April 28, 2013

3

Page 4: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPCXpresso boards

April 28, 2013 4

LPC-Link debug probe Can be disconnected from MCU target board to use with your own hardware

MCU target board MCU pins available on expansion connector (2x27 pin rows, 100 mil pitch, 900 mil between rows). Single user accessible LED

Page 5: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

New LPC-Link2

The latest addition to the LPCXpresso Eco-System. – LPC-Link 2 is a stand-alone debug link. – Standard 10 pin JTAG/SWD connector, 20 pin JTAG/SWD/ETM

connector, as well as analog, digital and serial expansion headers. – Supported in LPCXpresso-IDE via Code Red’s “Redlink” firmware. – Also supports different firmware images for broad tool compatibility. – MSRP USD 20 / EUR 15 – http://www.nxp.com/demoboard/OM13054.html

April 28, 2013 5

Page 6: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

INSTRUCTION TRACE

April 28, 2013 6

Page 7: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

Instruction Trace

Provides the ability to record a trace of executed instructions on certain Cortex-M0+, M3 and M4 based MCUs

Cortex M3/M4 parts – Target MCU must implement both an Embedded Trace Macrocell (ETM)

AND an Embedded Trace Buffer (ETB). ✔ LPC18xx and LPC43xx parts ✘ LPC17xx parts (do not implement an ETB) ✘ LPC13xx parts (do not implement ETM or ETB)

Cortex M0+ parts – Target MCU must implement a Micro Trace Buffer (MTB)

✔ LPC8xx parts

April 28, 2013 7

Page 8: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

CM0+ Micro Trace Buffer

April 28, 2013 8

Processor

SRAM

MTB controller

RAM interface

AHB interface

Program execution info

Application Data +

Trace Data

Microcontroller

Deb

ug

conn

ecto

r

Page 9: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPCXpresso812 Instruction Trace Demonstration

April 28, 2013 9

Page 10: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPC800-MAX

April 28, 2013 10

Page 11: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

New board - LPC800-MAX

LPC812 MCU, combines features from the mbed, as well as Arduino and LPCXpresso environments.

LPCXpresso – The LPCXpresso IDE will support programming and debugging the board

using the on-board CMSIS-DAP interface, no LPC-Link is needed. – The LPCXpresso connector on the board is compatible with existing

baseboards.

mbed enabled – LPC800 supported by the mbed 2.0 SDK – Includes mbed Onboard Interface, providing

• USB Drag and Drop programming • Debug via CMSIS-DAP, supported in LPCXpresso via Redlink interface • USB Virtual serial port for terminal application

– Leverage skill and experience of mbed Developer Community

April 28, 2013 11

Page 12: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

New board - LPC800-MAX

Arduino – Arduino is a popular

hobbyist platform, with a standardised set of expansion connectors.

– The Arduino connectors on the LPC800-MAX are compatible with the ”Arduino UNO” platform.

– Several compatible expansion cards (shields) can be obtained from vendors such as sparkfun, adafruit etc.

April 28, 2013

12

Page 13: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPC800-MAX Debug Connection Demonstration

April 28, 2013 13

Page 14: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPC43XX MULTICORE SUPPORT

April 28, 2013 14

Page 15: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPC43xx family – multicore MCUs

April 28, 2013 15

High performance, multiple cpus

– up to 204MHz

Internal flash versions offer up to 1MB of dual bank flash

Flashless versions can be used with off chip flash via EMC or SPIFI

Multiple onchip SRAM blocks

– up to 264KB

Page 16: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

Multicore Project Setup and Debug

April 28, 2013 16

M4 Master Project

M0 Bin

Init code • Copy M0 binary to RAM

if necessary : Release M0 from Reset :

Held in reset M0 running : :

Debugger downloads whole image via M4

Debugger attaches to M0 (no download)

LPCXpresso v5.2 provides ‘automatic linkage’ between slave and master projects

M0 Slave Project

Page 17: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

Demo Memory Usage (LPC4357)

April 28, 2013 17

M4 Master image (flash bank A)

M0 Slave image (flash bank B)

M4 Master RAM (block 1) – variables and stack

M0 Slave RAM (block 2) – variables and stack

Page 18: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

Multicore Debug Support

To support debugging of multicore MCU’s, have to use JTAG rather than SWD (which is normally used for debugging Cortex MCUs).

Current LPCXpresso release (v5.2.2) – Debug connection can be made to either M4 or M0 (but not both at the

same time) – Supported via LPC-Link or Code Red’s Red Probe+

Coming soon – Debug connections will be possible to both M4 and M0 at the same time

via single instance of IDE – Will be supported via LPC-Link2 (Redlink) – Beta setup used in demo

April 28, 2013 18

Page 19: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

PUBLIC

LPC43xx Multicore Demonstration

April 28, 2013 19

Page 20: Kickstarting your NXP embedded development with LPCXpresso · 2016-02-21 · Kickstarting your NXP embedded development with LPCXpresso Andy Beeson Code Red Technologies . Design

Kickstarting your NXP embedded development with LPCXpresso

Andy Beeson Code Red Technologies Design West 2013