13
1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Embed Size (px)

Citation preview

Page 1: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

1

EECS 373Design of Microprocessor-Based Systems

Ryan Heise, Matthew Linder,David Reddmann

Special Topics: Software Toolchains

Page 2: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

• A set of software products where the output of one product is used as the input for another

• Software Development Toolchain– Text Editor– Compiler/linker/assembler– Debugger

Definition

Page 3: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

• Cost• OS (i.e. Windows/Linux/OSX)• Supported Programming Languages• Supported Hardware Architectures (x86, ARM, etc.)

• Libraries• Real Time Operating Systems(RTOS)• Usability• Unique Features• Product Support

Software Development Toolchains: Differentiation

Page 4: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Third Party Toolchains

• IAR• Keil MDK• mikroC• Green Hills

4

Page 5: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

IAR

• Highly optimizing C and C++ compiler for ARM and other platforms

• Supports the full range of ARM (7-11), and CortexM(0-4), CortexR(4-7), and CortexA(5-9, 15)

• Support for over 3100 example projects for many developer boards

• Supports ARM and Thumb ISAs and ARM EABI• Complex debugging including power debugging

• Support for many different RTOS including freescale, and openRTOS

• Includes run-time libraries as well as library source code

5

Page 6: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

IAR Debugger

• Supports software simulation of code• Supports in-circuit debugging probes• Debugger is RTOS aware so debugging can be run even in real-time run environment

• Support for in hardware debugging using JTAG and many other in-situ debuggers

• Power debugging to visualize power consumption in correlation with source code

6

Page 7: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Keil MDK

• Specifically designed for microcontroller applications

• MDK-Lite, MDK-Basic, MDK-Standard, and MDK-Professional

• Supports Cortex-M, Cortex-R4, ARM7, and ARM9

• Keil RTX: small footprint RTOS• Complete Code Coverage

– Color coded debugging tool

• Professional supports:– TCP/IP Networking Suite– USB host/device interface– Flash file system library

7

Code Coverage

Page 8: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

mikroC

• IDE and toolchain by MikroElectronica• Intended for Microcontroller-based applications

• Supports only STMicroelectronics Cortex M3 and M4

• Supports hardware debugging, software simulating and function byte size measuring

• Has various tools like 7 segment display editor and text-to-LCD character editor

• Includes drivers and libraries for many peripherals including CAN, TFT, Ethernet, FAT16, USB, memory management

8

Page 9: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Green Hills Products

• RTOS: INTEGRITY– FFS, FAT, NFS, and journaling file systems– IPv4/IPv6 host and routing networking stacks

• Optimizing compilers for:– C, C++, EC++, MISRA C, Ada– Configurable to per-project, per-file, per-function, or per-source-line

• IDE: MULTI– C, C++, Ada– Designed to work with Green Hills compilers and debuggers

– Enforces strict clean code standards with MISRA 2004 and GHS Standard Mode

9

Page 10: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Green Hills Products

• Debugger: TimeMachine– One element of debugging suite allows visual debugging of program control flow.

– Performance analysis tools to see where program is spending its time

– Can view OS events to track undesirable behavior in system

10

TimeMachine debugging element

Page 11: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Pros and Cons

• IAR:+ Support for all ARM processors- Expensive

• MDK: + Extra support for microcontroller

applications- Only Professional edition offers all the

perks

• mikroC:+ Visual comments- Only supports STMicroelectronics, Cortex M3

and Cortex M4

• Green Hills:+ Visual debugging and performance analysis- Buy multiple products

11

Page 12: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Costs

12

Page 13: 1 EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains

Questions?

Comments?

Discussion?

13