Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "QNX® Momentics® Development Suite Tools for Building, Debugging and Optimizing Embedded Systems."— Presentation transcript:

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

2 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

3 QNX® Momentics® Development Suite Eclipse and CDT Introduction

4 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” (www.eclipse.org)www.eclipse.org  Eclipse is – A platform ► Core Runtime, GUI, and IDE features ► An SDK for building plug-ins for the Platform

5 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 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 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 3.1.1 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 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 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

10 QNX® Momentics® Development Suite Overview

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

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

13 QNX® Momentics® Development Suite Target Management

14 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 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 16 out of 48 All content copyright of QNX Software Systems Co. Target Management - Memory Target navigation

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

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

19 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

20 QNX® Momentics® Development Suite Embedded Systems Debugging

21 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 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 23 out of 48 All content copyright of QNX Software Systems Co. Embedded Systems Debugging Execution control Variables and data structures Registers

24 QNX® Momentics® Development Suite Embedded Systems Profiling

25 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 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 27 out of 48 All content copyright of QNX Software Systems Co. System Profiler – CPU Utilization CPU Utilization CPU Usage

28 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 29 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Multi-Core Support CPU Usage by Thread Cumulative Graph

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

31 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 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 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 34 out of 48 All content copyright of QNX Software Systems Co. System Profiler – Adaptive Partitioning Support Partition Summary Process/Thread Summary

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

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

37 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 38 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis – Error Discovery Source View Error Report Back Trace

39 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 40 out of 48 All content copyright of QNX Software Systems Co. Memory Analysis - Profiling Timeline View Details Memory allocation request histogram

41 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 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 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 44 out of 48 All content copyright of QNX Software Systems Co. Code Coverage – Web Report File & Function Navigation Coverage Statistics Source View

45 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

46 QNX® Momentics® Development Suite Multi-core System Development

47 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 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 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 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 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 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

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

54 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 55 out of 48 All content copyright of QNX Software Systems Co. Embedding the OS - System Builder

56 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 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 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

59 Thank you! Questions and Answers


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

Similar presentations


Ads by Google