EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains 1 Definition • 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 Software Development Toolchains: Differentiation • • • • • • • • • 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 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 MDKProfessional • 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 Code Coverage 7 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 textto-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 TimeMachine debugging element 10 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 Price per License $7,000 $6,000 $6,000 $4,895 $5,000 $4,000 $3,000 $2,000 $2,000 $1,000 $0 $249 $0 ARM GNU IAR KEIL MDK mikroC Green Hills 12 Questions? Comments? Discussion? 13