ID 321L: KPIT GNU compiler plug-ins for HEW / KPIT Eclipse IDE Matt Newsome, Principal Engineer, Software Tools, Renesas Electronics Europe, UK Kaushik Phatak, Tech Lead, KPIT Cummins Infosystems, Pune, India 13 October 2010 Template version: 1.6; Presentation version: 1.5
Dr. Matt Newsome Principal Engineer, Renesas Electronics Europe London, UK Renesas Project Lead for GNU compilers Renesas Project Lead for Eclipse Technical third party management Previous Experience: 14 years at Hitachi, Renesas Technology, Renesas Electronics 10 years working with KPIT on GNU and Eclipse PhD in development of compilers for embedded systems 2
Renesas Technology and Solution Portfolio Microcontrollers & Microprocessors #1 Market share worldwide * ASIC, ASSP & Memory Advanced and proven technologies Solutions for Innovation Analog and Power Devices #1 Market share in low-voltage MOSFET** * MCU: 31% revenue basis from Gartner "Semiconductor Applications Worldwide Annual Market Share: Database" 25 March 2010 ** Power MOSFET: 17.1% on unit basis from Marketing Eye 2009 (17.1% on unit basis). 3
Renesas Technology and Solution Portfolio Microcontrollers & Microprocessors #1 Market share worldwide * ASIC, ASSP & Memory Advanced and proven technologies Solutions for Innovation Analog and Power Devices #1 Market share in low-voltage MOSFET** * MCU: 31% revenue basis from Gartner "Semiconductor Applications Worldwide Annual Market Share: Database" 25 March 2010 ** Power MOSFET: 17.1% on unit basis from Marketing Eye 2009 (17.1% on unit basis). 4
Microcontroller and Microprocessor Line-up Superscalar, MMU, Multimedia Up to 1200 DMIPS, 45, 65 & 90nm process Video and audio processing on Linux Server, Industrial & Automotive High Performance CPU, Low Power Up to 500 DMIPS, 150 & 90nm process 600uA/MHz, 1.5 ua standby Medical, Automotive & Industrial High Performance CPU, FPU, DSC Up to 165 DMIPS, 90nm process 500uA/MHz, 2.5 ua standby Ethernet, CAN, USB, Motor Control, TFT Display Legacy Cores Next-generation migration to RX General Purpose Up to 10 DMIPS, 130nm process 350 ua/mhz, 1uA standby Capacitive touch Ultra Low Power Up to 25 DMIPS, 150nm process 190 ua/mhz, 0.3uA standby Application-specific integration Embedded Security Up to 25 DMIPS, 180, 90nm process 1mA/MHz, 100uA standby Crypto engine, Hardware security 5
Microcontroller and Microprocessor Line-up Superscalar, MMU, Multimedia Up to 1200 DMIPS, 45, 65 & 90nm process Video and audio processing on Linux Server, Industrial & Automotive High Performance CPU, Low Power Up to 500 DMIPS, 150 & 90nm process 600uA/MHz, 1.5 ua standby Medical, Automotive & Industrial High Performance CPU, FPU, DSC Up to 165 DMIPS, 90nm process 500uA/MHz, 2.5 ua standby Ethernet, CAN, USB, Motor Control, TFT Display Legacy Cores Next-generation migration to RX General Purpose Up to 10 DMIPS, 130nm process 350 ua/mhz, 1uA standby Capacitive touch Ultra Low Power Up to 25 DMIPS, 150nm process 190 ua/mhz, 0.3uA standby Application-specific integration Embedded Security Up to 25 DMIPS, 180, 90nm process 1mA/MHz, 100uA standby Crypto engine, Hardware security 6
Innovation with Eclipse Design IDEAS Debug Code Concept Electric Meter Test Utility Products FASTER! 7
What is GNU? GNU (GCC): Open source-based toolchains Community effort Collaboration by all developers ARM, x86, Apple, etc. Collaboration by users everyone can see the source code Any of these parties can contribute Benefits are many: Bugs are generally found quickly and fixed once Optimizations for one compiler often benefit all others Release testing is industry-wide, benefiting from pooled resources Users know the company will never go bust source code is available forever Renesas is a longstanding, active contributor to GCC Very long history with GCC maintainers and community Numerous patches and enhancements funded and contributed 8
KPIT GNU : Key Contents GNU Tools Documentation GNU Compiler Binutils GNU Assembler Sample Code GNU Debugger (Command Line) GNU Linker Other Utilities Optimised Libraries Newlib/Glibc Libraries Extensive Testing on Hardware 9
KPIT GNU : HEW Integration (Windows) GUI environment Project generation IO headers Memory map setup GUI memory map configuration Simple debug setup Renesas JTAG debug support E1, E20, E10A-USB, etc. Advanced debug features Trace, etc. GNU Compiler Newlib/Glibc Libraries GNU Tools Binutils GNU Linker GNU Assembler Other Utilities Documentation Sample Code Optimised Libraries Hardware Testing 10
What is Eclipse? Eclipse: Open source-based IDE Community effort Collaboration by MANY developers IBM, Oracle, Cisco, Intel Collaboration by users everyone can see the source code Any of these parties can contribute Benefits are many: Bugs are generally found quickly and fixed once Components for one company/user often benefit all others Release testing is industry-wide, benefiting from pooled resources Users know the company will never go bust source code is available forever Renesas & KPIT have worked on Eclipse products for 18 months Result is KPIT Eclipse v3.0 Self-contained IDE product for Linux and Windows Single installer no configuration required 11
KPIT Eclipse : Key Contents Eclipse Version Control Eclipse Core C/C++ Development Toolkit Debug Infrastructure Generic Toolchain Support Managed Make Build System Best-in-class Editor / Navigation PLUG-IN ARCHITECTURE Software Design Tools Third-party RTOS plugins Native hardware debug with JTAG Probes 12
KPIT GNU : Eclipse Integration (Windows) GNU Compiler GUI environment Project generation IO headers Memory map setup GUI memory map configuration Simple debug setup Renesas JTAG debug support E1, E20, E10A-USB Basic debugging Advanced debug in development Newlib/Glibc Libraries GNU Tools Binutils GNU Linker GNU Assembler Other Utilities Documentation Sample Code Optimised Libraries Hardware Testing 13
KPIT GNU : Eclipse Integration (Windows) Toolchains KPIT GNURX KPIT GNUSH KPIT GNUH8 Renesas RXC Renesas SHC 3rd Party e.g. IAR Debuggers: E1/E20 E10A-USB Lauterbach Segger A.N.Other Generic Makefile 14
Renesas MCU/MPU Lineup (GNU Support) Supported In development Under review 15
Renesas MCU/MPU Lineup (Eclipse Support) Build and debug Build only 16
RX600 GNU Support Full HEW IDE support in KPIT GNURX v10.03 Full KPIT Eclipse support in KPIT Eclipse v3.0 17
RX200 GNU Support RX600 fully supported (RX610, RX62N, RX62T) RX200 already supported in compiler and IDEs 18
GNURX Efficiency GNURX v10.03 incorporates major optimisation improvements committed by the community to gcc-4.6 The improvement has been measured in terms of internallymeasured EEMBC CoreMark open benchmark scores KPIT GNURX v10.02 toolchain achieved 1.80 Coremark/MHz KPIT GNURX v10.03 toolchain achieved 2.13 Coremark/MHz KPIT GNURX v11.01 toolchain will achieve 2.24 Coremark/MHz Around 33% increase in efficiency The highest optimisation of any RX compiler on the market Internally measured CoreMark data, August 2010 19
Statistics 20
Unique KPIT Downloads (Last 3 Years) 21
www.kpiteclipse.com 22
Mr. Kaushik Phatak Tech Lead, KPIT Cummins Infosystems, Pune, India Working on GNU based toolchains for Renesas series of microcontrollers. Responsible for Technical Support for Development tools for various Renesas targets. PREVIOUS EXPERIENCE: Software Engineer at CCS Inc, worked on development and support of C Compilers for Microchip's PIC devices. MSEE from the University of Missouri - Rolla 23
Agenda Getting started with KPIT tools Lab Setup Sample project creation Setting various options Hardware Debugging 24
Key Takeaways By the end of this session you will be able to: Learn to use KPIT GNU tools for product development Develop applications from scratch Migrate code easily from other environments to the KPIT Eclipse GNU based environment Speed up your application development using latest toolchain and IDE features 25
Access these tools - www.kpitgnutools.com Register Login Download 26
Access these tools - www.kpitgnutools.com 27
Access these tools - www.kpitgnutools.com 28
Access these tools - www.kpitgnutools.com 29
KPIT GNU Tools Features Library Generator Pre-built/project-built library with project Build Newlib/Optlib with customized compiler/assembler options Interoperability ABI Conformance between Renesas and GCC toolchains -mrenesas options implemented for SH toolchain Migration guides available on website 30
KPIT GNU Tools Features CONVRENESASLIB Converts the input Renesas SH library file(s) into a GNU archive Supports Multiple Renesas library files on command line Allows for easy interoperability between Renesas toolchain and GCC based toolchain for SH target 31
KPIT GNURX Toolchain usage: Data Types Data Type (signed by default) Size in bits char 8 short 16 int 32 long 32 long long 64 float 32 double 32/64 * *Double size is 32 bit by default. The option m64bit-doubles sets its size to 64 bits 32
KPIT GNURX Toolchain usage: Key Attributes Interrupt Attributes void INT_Excep_TPU1_TCI1U(void) attribute ((interrupt)); void INT_Excep_TMR3_CMI3A(void) attribute ((fast_interrupt)); Optimization Attribute void foo (int a) attribute ((optimize("-o3"))); 33
Start the Lab Keep your dice turned to the section of the lab you are on. (Instructions are provided in the lab handout) Please refer to the Lab Handout and let s get started! 34
Checking Progress We are using the die to keep track of where everyone is in the lab. Make sure to update it as you change sections. When done with the lab, your die will have the 6 pointing up as shown here. 35
Q&A Session 36
Summary 37
KPIT Tools KPIT GNU Tools Free high-quality toolchains for Renesas Fully integrated with Renesas HEW IDE Fully integrated with KPIT Eclipse IDE Eclipse IDE Industry-standard development environment Best-in-class editing and navigation features Managed or unmanaged Make projects Integrated with GNU and Renesas toolchains E1/E20/Segger/E10A hardware debug out-of-the-box Free worldwide support Unlimited support via kpitgnutools.com / kpiteclipse.com Backed by Service Level Agreement You will get a response within 1 working day Please mail us your feedback or requests: gnusupport@kpitgnutools.com (either GNU or Eclipse) 38
Thank You! 39
Appendix 40
KPIT Tools Host OS Distribution in 10Q2 HostOS Count Percentage GNU/Linux 106 7.93 Windows 2000 27 2.02 Windows 98 1 0.07 Windows Vista Windows 7 306 22.9 Windows XP 896 67.07 Total Count 1336 92% Windows 8% GNU/Linux Windows 7 Volume business: 100% Windows 41
Renesas Electronics America Inc.