Course M321
Introduction to the PIC32 Architecture and MIPS Assembly Language Programming for the PIC32
Introduction to the PIC32 Architecture and MIPS Assembly Language Programming for the PIC32
| Duration: 5 Days | Microchip Certified Training |
Intended Audience
This course is aimed at engineers with some understanding of microelectronics and programming who are new to the PIC32 architecture, or wish to fill in gaps in their knowledge.
Familiarity with the Windows environment on a Personal Computer, and with fundamental concepts such as bits, bytes, Boolean logic and addressing is assumed.
Some experience of assembly language on microprocessors or other microcontrollers will be useful background for an understanding of the more advanced concepts presented during this course.
Course Overview
This hands-on course aims to provide engineers with an understanding of the enhanced PIC32 family of microcontrollers and experience of using Microchip development tools to create and debug simple and more complex assembly language programs.
The emphasis is on providing a solid foundation of knowledge of the architecture and features of this range of microcontrollers, together with practical experience of the development tools and the steps required to embark on a new development..
Key Skills
- Understand the architecture and features of the PIC32 family of microcontrollers
- Gain hands-on experience of Microchip development tools for creating and debugging assembly language programs on a target PIC32 microcontroller
- Be introduced to the use of on-chip peripherals to simplify interfaces to the outside world
- Obtain a full understanding of the MIPS instruction set and how the MIPS processors architecture design has been incorporated into the PIC32
Practical Work
The course includes many practical workshop exercises which are interleaved with the relevant presentation material for maximum impact and variety. These exercises are carried out using MPLAB software running on a Windows PC, an ICD programmer/debugger and a target development board containing a PIC32 microcontroller on which programs created during the exercises can be observed to be running in real-time.
You will learn how to:
- Program object code into a target PIC32 microcontroller using MPLAB and ICD3
- Create, build and debug new assembly language projects using MPLAB and ICD3
- Understand the components of an assembly source file
- Set the PIC32 configuration options appropriately for the target system
- Use digital I/O ports to interact with the outside world
- Manipulate data memory using direct and indirect addressing
- Create time delays using software loops and hardware timers
- Take advantage of interrupts to handle events in the background
- Develop structured assembly language code by means of careful design and judicious use of Macros and functions
Course Contents
Microchip Overview
- Market profile,
- product range,
- key advantages and support network
- History of the PIC32 and of the MIPS processor architecture
Overview of Development Tools
- Microchip development software: MPLAB, MPSIM and associated tools
- Microchip In-Circuit Debugger (ICD3) and In-Circuit Emulator (ICE) hardware
- Device programmers, and the design option of In-Circuit Serial Programming (ICSP)
- Demonstration boards and kits
- Third-party development tools
- Introduction to JTAG and overview of JTAG tools
The PIC32 Architecture
- Harvard versus Von Neumann architecture
- Organisation of program and data memory
- Op-codes and addressing modes
- Stack operations and interrupts
- On-chip peripherals and clock options
The PIC32 Assembler
- Assembler directives and op-codes
- Programming style - use of templates and comments
- Debugging assembly code using MPLAB, MPSIM and ICD3
- Interrupt service routines - how to create handlers using assembly code
- Structuring code using functions and macros
- Modular programming - multiple file projects, modules and interfaces
- Programming function calls using C language compatible function calling conventions
- Understanding the GNU assembler conventions and directives
- Learning common patterns and idioms for assembly code optimisation
- DSP Programming in MIPS assembler
