130 likes | 280 Views
EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains. Definition. A set of software products where the output of one product is used as the input for another Software Development Toolchain Text Editor
E N D
EECS 373 Design of Microprocessor-Based Systems Ryan Heise, Matthew Linder, David Reddmann Special Topics: Software Toolchains
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
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
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
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 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
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
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
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
Questions? Comments? Discussion?