1 / 24

Getting Started with a Cortex-M3 Board

Getting Started with a Cortex-M3 Board. Steven Guan and Joe Hale, NXP Semiconductors If you have not already downloaded the class prerequisites, please get the attention of an NXP representative. Class Agenda. Introduction to the ARM Cortex-M series

cyan
Download Presentation

Getting Started with a Cortex-M3 Board

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Getting Started with a Cortex-M3 Board Steven Guan and Joe Hale,NXP SemiconductorsIf you have not already downloaded the class prerequisites, please get the attention of an NXP representative.

  2. Class Agenda • Introduction to the ARM Cortex-M series • Getting started with the NXP LPC1549 Cortex-M3 board • Introduction to Integrated Development Environments • Programming techniques for embedded systems • Modern debugging tools on a Cortex-M3 core • Common Pitfalls

  3. Class Prerequisites • You should have already downloaded and installed (if applicable): • Keil MDK (download and install) • Keil MDK Cortex-M Legacy (download and install) • Segger J-Link Software (download and install) • LPC1549 LPCOpen Software Platform (download) • If you have not downloaded the software, Please get the attention of an NXP representative!

  4. Introduction to the ARM Cortex-M Family

  5. ARM Cortex Family

  6. What is a Cortex-M series core? • 32-bit memory architecture • ARM Thumb-2 ISA • Optimized for low power • Trades processing power for lower cost and smaller size

  7. ARM Cortex-M series

  8. Example Cortex-M0/M0+ MCU

  9. Getting started with the NXP LPCXpresso1549 Cortex-M3 Development Board

  10. NXP LPC1549 Series Specifications MEMORY ARM Cortex-M3 Up to 72 MHz Flash 256kB RAM 36 kB EEPROM 4 kB SYSTEM Pin Switch Matrix sDMA(18 ch) ROM CRC Engine USB PLL GPIO (30-78) Power Management Unit PMU, power modes, BOD, single VDD power supply, POR INTERFACES CAN (& PHY) USB (FS Dev) Multilayer Bus Matrix SPI (2) I2C (Fm+) Clock Generation Unit 12 MHz, 1% IRC OSC, 1-24 MHz System OSC, System (CPU) PLL JTAG SWD UART (3) TIMERS SCTimer/PWM (4) QEI ANALOG ADCs (2) 12 ch, 12-b, 2 Msps WWDT Comparators (4) RTCBattery pin Systick DAC Temp Sensor

  11. LPCXpresso1549 Board from NXP

  12. LPC Link-2 Debugger • Debugger acts as middleman between MCU and PC • Integrated onto LPC1549 Cortex-M3 board • LPC Link-2 can be flashed to emulate third party debuggers • J-Link pre-installed on the boards given away today • Can also be used as a standalone probe

  13. Introduction to Integrated Development Environments (IDEs)

  14. What is an IDE? • Software application used to facilitate software development • Source code editor • Code compiler, including automated building tools • Software debugger • Examples include Keil MDK, IAR Embedded Workbench, NXP LPCXpresso IDE, etc.

  15. How does an IDE work? • Individual source files make up a Project • Projects are organized into a Workspace • A Project may be compiled into a library or application code

  16. How does an IDE work? Development PC Code Compilation Application Binary MCU Debugger Microcontroller USB Cable

  17. Hands On: Intro to Keil MDK • Complete the worksheet that we are passing out in order to: • Familiarize yourself with the Keil MDK GUI • Get comfortable working with projects in a workspace • Use the LPCOpen software platform to successfully compile and download your first application onto the LPC1549! • If you run into issues, contact the closest NXP representative for assistance

  18. Debug Session • IDE will use the MCU debugger to communicate with MCU through Serial Wire Debug (SWD) pins • IDE will gain access to system memory, peripherals, and debug registers • Enables plethora of debug features to help aid software development

  19. Programming Techniques for an Embedded System • Grand Loop Design • All system events addressed inside a while(1) loop that never exits • Polling method • Service event by constantly checking • Interrupt method • Service event when system is told to service

  20. Demo: Polling vs. Interrupts and their effect on power • Aim to minimize power consumption to maximize battery life • Measure power to direct optimization

  21. Modern Debugging Tools on a Cortex-M Core • Code stepping • Breakpoints • Variable Viewer • SWO Tracing

  22. Demo: SWO Tracing • Non-intrusive debugging • Uses one extra SWD pin as data input/output • PC sampling • Interrupt entries and exits • Instrumentation with ITM • Data watch

  23. Common Pitfalls • Compiler code optimization • Reorders instructions to speed up code execution, making code stepping hard to follow • Use the volatile keyword to prevent variables from being “optimized out” • Use breakpoints to step through interrupt handler code • Don’t use printf() or its deviations

  24. Questions? Thank you for attending this Embedded TechCon class!

More Related