QNX® Momentics® Development Suite Tools for Building, Debugging and Optimizing Embedded Systems.

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Technology Drivers Traditional HPC application drivers – OS noise, resource monitoring and management, memory footprint – Complexity of resources to be.
Designing and Optimizing Software for Intel® Architecture Multi-core Processors Peter van der Veen QNX Software Systems.
Intel® performance analyze tools Nikita Panov Idrisov Renat.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Computer Systems/Operating Systems - Class 8
Threads Irfan Khan Myo Thein What Are Threads ? a light, fine, string like length of material made up of two or more fibers or strands of spun cotton,
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 11: Monitoring Server Performance.
PRASHANTHI NARAYAN NETTEM.
This material exempt per Department of Commerce license exception TSU Debugging.
Understanding and Managing WebSphere V5
Leveling the Field for Multicore Open Systems Architectures Markus Levy President, EEMBC President, Multicore Association.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Spring 2014 SILICON VALLEY UNIVERSITY CONFIDENTIAL 1 Introduction to Embedded Systems Dr. Jerry Shiao, Silicon Valley University.
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Wind River VxWorks Presentation
Computer System Architectures Computer System Software
© 2008 Intel Corporation; made available under the EPL v1.0 | February 12, 2008 | Integrating a custom tool-chain in CDT.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
© 2005 by IBM Corporation; made available under the EPL v1.0 | February 28 th 2005 Adopting the Eclipse™ Test and Performance Tools Platform (TPTP) project.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
Software Performance Analysis Using CodeAnalyst for Windows Sherry Hurwitz SW Applications Manager SRD Advanced Micro Devices Lei.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Providing Bluetooth Functionality on Embedded Devices: A look at Embedded Operating Systems and Bluetooth Stacks Brian Fox Supervisors: Dr Greg Foster.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
Introduction to ColdFusion Yu Fu 2003 MEC Candidate.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
What’s New in Automated Software Testing and ClearQuest Shmuel Bashan IBM Rational
Copyright © 2002, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Introduction Purpose This training course covers debugging an application on an SH target in the Renesas HEW (High-performance Embedded Workshop) development.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
VxWorks Fall 2005 Final Project CS 450: Operating Systems Section 1 Kenneth White Josh Houck Karl Ridgeway Mike Ripley Morgan Serene.
Chapter 4 – Threads (Pgs 153 – 174). Threads  A "Basic Unit of CPU Utilization"  A technique that assists in performing parallel computation by setting.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
© 2006 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Doug Schaefer, QNX CDT Project Lead CDT Contributor Summit.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
CSC Multiprocessor Programming, Spring, 2012 Chapter 11 – Performance and Scalability Dr. Dale E. Parson, week 12.
Overview of AIMS Hans Sherburne UPC Group HCS Research Laboratory University of Florida Color encoding key: Blue: Information Red: Negative note Green:
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Lecture 27 Multiprocessor Scheduling. Last lecture: VMM Two old problems: CPU virtualization and memory virtualization I/O virtualization Today Issues.
Background Computer System Architectures Computer System Software.
Tuning Threaded Code with Intel® Parallel Amplifier.
김민수 Cortex-M4 Processor - Getting Started with the GNU Compiler Collection(gcc)
January 7, 2007 QNX Multi-Core Solution Optimizing Software for Multi-core Kerry Johnson.
Improve Embedded System Stability and Performance through Memory Analysis Tools Bill Graham, Product Line Manager Development Tools November 14, 2006.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
The best of WF 4.0 and AppFabric Damir Dobric MVP-Connected System Developer Microsoft Connected System Division Advisor Visual Studio Inner Circle member.
Beyond Application Profiling to System Aware Analysis Elena Laskavaia, QNX Bill Graham, QNX.
Introduction to threads
Processes and Threads Processes and their scheduling
HP C/C++ Remote developer plug-in for Eclipse
Intel® Parallel Studio and Advisor
Chapter 4: Threads.
QNX Technology Overview
Multithreaded Programming
A Virtual Machine Monitor for Utilizing Non-dedicated Clusters
CSC Multiprocessor Programming, Spring, 2011
Presentation transcript:

QNX® Momentics® Development Suite Tools for Building, Debugging and Optimizing Embedded Systems

2 out of 48 All content copyright of QNX Software Systems Co. Agenda 1. Eclipse and CDT Introduction 2. QNX® Momentics® Development Suite 3. Target Management 4. Embedded System Debugging 5. Embedded System Profiling 6. Application Analysis: Memory, Code Coverage, Performance 7. Multi-core Systems Development 8. Embedding the Operating System and Applications 9. Q&A

QNX® Momentics® Development Suite Eclipse and CDT Introduction

4 out of 48 All content copyright of QNX Software Systems Co. What is Eclipse?  Eclipse is - a vast open source community ► 17 Strategic Members, 79 Add-in Provider Members, many independent contributors ► Widely adopted  50 million downloads since 2001 (as of 2005)  1 million downloads of Callisto (3.2) 40 days after release  Eclipse is - A collection of open source projects ► “providing an extensible development platform and application frameworks for building software” (  Eclipse is – A platform ► Core Runtime, GUI, and IDE features ► An SDK for building plug-ins for the Platform

5 out of 48 All content copyright of QNX Software Systems Co. History of Eclipse  Originated at IBM in 2000  Foundation for WebSphere Studio Application Developer ® ► Intended to compete with Microsoft ® Visual Studio ® in enterprise  IBM had vision to see the value of open source technologies ► Good experience with Apache and Linux  Formed Eclipse Consortium November 2001 ► Involved both partners and competitors  Gave technology and leadership to Eclipse Foundation ► February 2004 ► Combat the perception that IBM still owned Eclipse

6 out of 48 All content copyright of QNX Software Systems Co. What is the CDT?  One of the major Eclipse tools projects  A set of plug-ins that support C and C++ development ► Extend many of the Eclipse Platform extension points  Support Edit/Build/Debug cycle  Out-of-the-box support for gnu tools for host development ► gcc, g++, gdb, binutils, etc.  Platform for integrating other toolchains ► Compilers, debuggers, build systems, …  Platform for adding other C/C++ tooling ► Embedded tools to support unique needs of embedded systems

7 out of 48 All content copyright of QNX Software Systems Co. History of the CDT  Project launched July 2002 ► At QNX headquarters in Ottawa, Canada  Initially populated with contribution from QNX ► Additional participation from Rational, MontaVista, and Red Hat ► Again, both partners and competitors  CDT releases regularly with latest being in Sept 2006  Contributions from: ► QNX - initial contribution, core and debug ► Rational/IBM - parser technologies ► Intel and Texas Instruments - makefile generation ► Wind River - refactoring ► Others coming…

8 out of 48 All content copyright of QNX Software Systems Co. QNX is Committed to Eclipse and CDT  QNX is a founding member of the Eclipse Consortium  QNX contributed the original implementation of the CDT to Eclipse and has guided the evolution of the CDT project, from its humble beginnings of 80,000 LOC to over 700,000 LOC today  The CDT is the second most popular project on Eclipse, following only the Eclipse platform itself  Simultaneously leverage open standards like Eclipse while taking advantage of high value-add functionality and world-class innovation through standardized extension points ► Designed for embedded: cross-compiler support, easy debugging, extended for target management ► Seamless support for third-party plug-in tools and optimizing compiler technology ► High developer productivity: no additional learning curve, high performance IDE, reliable platform, scalable to large projects

9 out of 48 All content copyright of QNX Software Systems Co. Who creates products that include the CDT? There are over 17 commercially available products based on Eclipse and CDT

QNX® Momentics® Development Suite Overview

11 out of 48 All content copyright of QNX Software Systems Co. QNX ® Momentics ® at a Glance

12 out of 48 All content copyright of QNX Software Systems Co. Built on the Eclipse Platform

QNX® Momentics® Development Suite Target Management

14 out of 48 All content copyright of QNX Software Systems Co. Target Management  Embedded systems need to be monitored, debugged and controlled remotely ► Much of complexity and difficulty with embedded development is the limited insight into the operation of the target system

15 out of 48 All content copyright of QNX Software Systems Co. Target Management  QNX Momentics adds target management to Eclipse ► Observe and control running target (memory, threads, processes) ► Manipulate file system ► Download, debug, control and optimize applications Network/Serial/Other

16 out of 48 All content copyright of QNX Software Systems Co. Target Management - Memory Target navigation

17 out of 48 All content copyright of QNX Software Systems Co. Target Management - Memory Memory Map Memory Details

18 out of 48 All content copyright of QNX Software Systems Co. Target Management – File System File Details File System Explorer

19 out of 48 All content copyright of QNX Software Systems Co. Target Management – Adaptive Partitioning Partition Information Partition Explorer CPU Usage Per Partition Partition Budgets

QNX® Momentics® Development Suite Embedded Systems Debugging

21 out of 48 All content copyright of QNX Software Systems Co. Embedded System Debugging  QNX Momentics embedded debugging to Eclipse ► Full source debugging on remote target ► Start, stop, and step multiple processes and threads ► Observe variables, globals, memory, registers Network/Serial/Other

22 out of 48 All content copyright of QNX Software Systems Co. Embedded Systems Debugging Process and Thread Information Source View with current executing code

23 out of 48 All content copyright of QNX Software Systems Co. Embedded Systems Debugging Execution control Variables and data structures Registers

QNX® Momentics® Development Suite Embedded Systems Profiling

25 out of 48 All content copyright of QNX Software Systems Co. Profiling an Embedded System  Very low overhead, high performance buffering of kernel events  Snapshots of activity are captured and sent to the IDE  IDE visualizes events in graphs and tables for analysis

26 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Kernel Events Inter-Process Communication Thread state change Thread Migration

27 out of 48 All content copyright of QNX Software Systems Co. System Profiler – CPU Utilization CPU Utilization CPU Usage

28 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Measuring Interrupt Latency Interrupt arrives – Kernel handles it Kernel sends message to handler thread Thread begins to run

29 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support CPU Usage by Thread Cumulative Graph

30 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support CPU Utilization CPU Usage

31 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support Running CPU by Color Code Mouse Hover CPU Information

32 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support Thread Migrations vs Time Top Thread Migrations

33 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support Inter-core Messages List of Top Inter-core Senders/Receivers

34 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Adaptive Partitioning Support Partition Summary Process/Thread Summary

35 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Adaptive Partitioning Support Mouse Hover Partition Information

QNX® Momentics® Development Suite Application Analysis: Memory, Code Coverage, Performance

37 out of 48 All content copyright of QNX Software Systems Co. Embedded Application Analysis  Embedded development requires debugging and optimization of the application on the target system  Memory analysis can reveal difficult to debug system crashes or memory leaks that cause long-term instability  Code coverage can reveal deficiencies in the testing process ► If you haven’t tested the code your customers probably will  Application profiling can reveal performance bottlenecks ► Where is the CPU being used? ► Why is my application freezing when certain things happen?

38 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis – Error Discovery Source View Error Report Back Trace

39 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis - Profiling Session Information & File Navigation Source View Back Trace Allocation/Deallocation History

40 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis - Profiling Timeline View Details Memory allocation request histogram

41 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis - Profiling Memory Usage with Overhead Memory Usage Vs Time Trace Details

42 out of 48 All content copyright of QNX Software Systems Co. Memory Profiling - Optimization Band Histogram (based on memory allocation algorithm) Block Usage Vs Time Trace Details

43 out of 48 All content copyright of QNX Software Systems Co. Code Coverage Source View Session Information & File and Function Navigation Web Report

44 out of 48 All content copyright of QNX Software Systems Co. Code Coverage – Web Report File & Function Navigation Coverage Statistics Source View

45 out of 48 All content copyright of QNX Software Systems Co. Performance - Application Profiling Session CPU Usage Summary Call Graph Source View Detail Per Thread Usage

QNX® Momentics® Development Suite Multi-core System Development

47 out of 48 All content copyright of QNX Software Systems Co. Symmetric Multiprocessing for Multi-core Systems  Highly scalable supporting multiple processing cores seamlessly without code modification  One OS “sees all” and handles all resource sharing / arbitration issues  Dynamic load balancing can handle processing bursts with OS controlled thread scheduling  High performance inter-core messaging and thread synchronization  Core-to-core application synchronization using POSIX OS primitives  System wide statistics / information gathering capability for performance optimizations, debugging, etc. CPU System Interconnect Cache I/O Memory Controller I/O Memory QNX Neutrino Applications

48 out of 48 All content copyright of QNX Software Systems Co. Multi-core System Profiling Observe CPU Utilization per Node Find Compute- intensive Processes

49 out of 48 All content copyright of QNX Software Systems Co. Exploiting Parallelism – Application Profiling Use call graph to find CPU usage – candidates for parallelization

50 out of 48 All content copyright of QNX Software Systems Co. Multithreading Compute Intensive Operations  Single threaded application ► Several compute- intensive functions ► Identified through profiling  Create worker threads for compute-intensive functions ► Neutrino OS will schedule to multiple CPUs ► Improve throughput

51 out of 48 All content copyright of QNX Software Systems Co. Monitor Thread Migration/Inter-core Communication  Monitor application after parallelization ► Watch for heavy thread migration ► Watch for heavy IPC

52 out of 48 All content copyright of QNX Software Systems Co. Bound Multiprocessing  Set CPU affinity for processes and threads ► Lock down thread/process to CPU

QNX® Momentics® Development Suite  Embedding the Operating System and Applications

54 out of 48 All content copyright of QNX Software Systems Co. Embedding the OS and Applications  Embedded systems require operating system and applications to be bundled into a boot image  Tools are needed to simplify the work of creating a boot image  QNX Momentics provides the System Builder which provides tools in Eclipse to: ► Create boot image from OS, binaries, libraries and DLLs ► Startup script editing ► Built-in TFTP server ► Serial terminal

55 out of 48 All content copyright of QNX Software Systems Co. Embedding the OS - System Builder

56 out of 48 All content copyright of QNX Software Systems Co. Embedding the OS - System Builder Image Navigator Binary Inspector Binary and File System Builder Built-in TFTP Server Serial Terminal

57 out of 48 All content copyright of QNX Software Systems Co. Embedding the OS – Image Builder Binaries, Libraries, DLLs, etc. Boot File System Structure

58 out of 48 All content copyright of QNX Software Systems Co. Summary  QNX is a leading and active contributor to Eclipse and the CDT  Embedded development requires more than basic IDE functionality ► Target management ► Embedded Debugging ► System Profiling ► Application Analysis ► Tools ready for Multi-Core Development  QNX Momentics Development Suite is open, extensible and ready for embedded development

Thank you! Questions and Answers