Post on 24-Dec-2015
1
EECS 373Design 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
• 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
Third Party Toolchains
• IAR• Keil MDK• mikroC• Green Hills
4
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
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
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
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
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
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
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
Costs
12
Questions?
Comments?
Discussion?
13