Slide Show Title

Download Report

Transcript Slide Show Title

QNX® Momentics® Development Suite
Tools for Building, Debugging and
Optimizing Embedded Systems
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
All content copyright of QNX Software Systems Co.
2 out of 48
QNX® Momentics® Development Suite
Eclipse and CDT Introduction
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)
Eclipse is – A platform
►
Core Runtime, GUI, and IDE features
►
An SDK for building plug-ins for the Platform
All content copyright of QNX Software Systems Co.
4 out of 48
History of Eclipse

Originated at IBM in 2000

Foundation for WebSphere Studio Application Developer®
►

IBM had vision to see the value of open source technologies
►

Good experience with Apache and Linux
Formed Eclipse Consortium November 2001
►

Intended to compete with Microsoft® Visual Studio® in enterprise
Involved both partners and competitors
Gave technology and leadership to Eclipse Foundation
►
February 2004
►
Combat the perception that IBM still owned Eclipse
All content copyright of QNX Software Systems Co.
5 out of 48
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
►

Platform for integrating other toolchains
►

gcc, g++, gdb, binutils, etc.
Compilers, debuggers, build systems, …
Platform for adding other C/C++ tooling
►
Embedded tools to support unique needs of embedded systems
All content copyright of QNX Software Systems Co.
6 out of 48
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…
All content copyright of QNX Software Systems Co.
7 out of 48
QNX is Committed to Eclipse and CDT
CDT Contribution by Supporting Members (2006)

Other
10%
Wind River
2%

IBM
36%
QNX
52%

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
Source: Eclipse CVS Logs

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
All content copyright of QNX Software Systems Co.
8 out of 48
Who creates products that include the
CDT?
There are over 17 commercially available products based on Eclipse and CDT
All content copyright of QNX Software Systems Co.
9 out of 48
QNX® Momentics® Development Suite
Overview
QNX® Momentics® at a Glance
All content copyright of QNX Software Systems Co.
11 out of 48
Built on the Eclipse Platform
All content copyright of QNX Software Systems Co.
12 out of 48
QNX® Momentics® Development Suite
Target Management
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
All content copyright of QNX Software Systems Co.
14 out of 48
Target Management
Network/Serial/Other

QNX Momentics adds target management to Eclipse
►
Observe and control running target (memory, threads, processes)
►
Manipulate file system
►
Download, debug, control and optimize applications
All content copyright of QNX Software Systems Co.
15 out of 48
Target Management - Memory
Target
navigation
All content copyright of QNX Software Systems Co.
16 out of 48
Target Management - Memory
Memory
Map
Memory
Details
All content copyright of QNX Software Systems Co.
17 out of 48
Target Management – File System
File Details
File System
Explorer
All content copyright of QNX Software Systems Co.
18 out of 48
Target Management – Adaptive
Partitioning
Partition
Information
Partition
Explorer
CPU Usage
Per Partition
Partition
Budgets
All content copyright of QNX Software Systems Co.
19 out of 48
QNX® Momentics® Development Suite
Embedded Systems Debugging
Embedded System Debugging
Network/Serial/Other

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
All content copyright of QNX Software Systems Co.
21 out of 48
Embedded Systems Debugging
Process and
Thread
Information
Source View
with current
executing code
All content copyright of QNX Software Systems Co.
22 out of 48
Embedded Systems Debugging
Execution
control
Variables and
data structures
Registers
All content copyright of QNX Software Systems Co.
23 out of 48
QNX® Momentics® Development Suite
Embedded Systems Profiling
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
All content copyright of QNX Software Systems Co.
25 out of 48
System Profiler – Kernel Events
Thread
Migration
Thread state
change
Inter-Process
Communication
All content copyright of QNX Software Systems Co.
26 out of 48
System Profiler – CPU Utilization
CPU Utilization
CPU Usage
All content copyright of QNX Software Systems Co.
27 out of 48
System Profiler – Measuring Interrupt Latency
Interrupt arrives –
Kernel handles it
Kernel sends
message to
handler thread
Thread begins to
run
All content copyright of QNX Software Systems Co.
28 out of 48
System Profiler – Multi-Core Support
CPU Usage by
Thread
All content copyright of QNX Software Systems Co.
Cumulative
Graph
29 out of 48
System Profiler – Multi-Core Support
CPU Utilization
CPU Usage
All content copyright of QNX Software Systems Co.
30 out of 48
System Profiler – Multi-Core Support
Running CPU by
Color Code
Mouse Hover
CPU Information
All content copyright of QNX Software Systems Co.
31 out of 48
System Profiler – Multi-Core Support
Thread Migrations
vs
Time
Top Thread
Migrations
All content copyright of QNX Software Systems Co.
32 out of 48
System Profiler – Multi-Core Support
Inter-core
Messages
List of Top Inter-core
Senders/Receivers
All content copyright of QNX Software Systems Co.
33 out of 48
System Profiler – Adaptive
Partitioning Support
Partition
Summary
Process/Thread
Summary
All content copyright of QNX Software Systems Co.
34 out of 48
System Profiler – Adaptive Partitioning
Support
Mouse Hover
Partition
Information
All content copyright of QNX Software Systems Co.
35 out of 48
QNX® Momentics® Development Suite
Application Analysis: Memory, Code
Coverage, Performance
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?
All content copyright of QNX Software Systems Co.
37 out of 48
Memory Analysis – Error Discovery
Back Trace
Error Report
Source View
All content copyright of QNX Software Systems Co.
38 out of 48
Memory Analysis - Profiling
Session
Information & File
Navigation
Back Trace
Allocation/Deallocation
History
Source View
All content copyright of QNX Software Systems Co.
39 out of 48
Memory Analysis - Profiling
Details
Memory allocation
request histogram
Timeline View
All content copyright of QNX Software Systems Co.
40 out of 48
Memory Analysis - Profiling
Trace
Details
Memory Usage with
Overhead
Memory Usage
Vs Time
All content copyright of QNX Software Systems Co.
41 out of 48
Memory Profiling - Optimization
Trace Details
Band Histogram
(based on memory
allocation algorithm)
Block Usage
Vs Time
All content copyright of QNX Software Systems Co.
42 out of 48
Code Coverage
Web Report
Session
Information & File
and Function
Navigation
Source View
All content copyright of QNX Software Systems Co.
43 out of 48
Code Coverage – Web Report
File &
Function
Navigation
Coverage
Statistics
Source View
All content copyright of QNX Software Systems Co.
44 out of 48
Performance - Application Profiling
Per Thread
Usage
Session
CPU Usage
Summary
Source View
Detail
Call Graph
All content copyright of QNX Software Systems Co.
45 out of 48
QNX® Momentics® Development Suite
Multi-core System Development
Symmetric Multiprocessing for Multi-core
Systems


Highly scalable supporting multiple
processing cores seamlessly without
code modification
QNX Neutrino
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

Applications
System wide statistics / information
gathering capability for performance
optimizations, debugging, etc.
All content copyright of QNX Software Systems Co.
CPU
CPU
Cache
Cache
System
Interconnect
I/O
I/O
I/O
Memory
Controller
Memory
47 out of 48
Multi-core System Profiling
Observe CPU
Utilization per
Node
Find Computeintensive
Processes
All content copyright of QNX Software Systems Co.
48 out of 48
Exploiting Parallelism – Application Profiling
Use call graph to
find CPU usage –
candidates for
parallelization
All content copyright of QNX Software Systems Co.
49 out of 48
Multithreading Compute Intensive Operations


Single threaded
application
►
Several computeintensive functions
►
Identified through
profiling
Create worker threads
for compute-intensive
functions
►
Neutrino OS will
schedule to multiple
CPUs
►
Improve throughput
All content copyright of QNX Software Systems Co.
50 out of 48
Monitor Thread Migration/Inter-core
Communication

All content copyright of QNX Software Systems Co.
Monitor application
after parallelization
►
Watch for heavy
thread migration
►
Watch for heavy IPC
51 out of 48
Bound Multiprocessing

Set CPU affinity for
processes and
threads
►
Lock down
thread/process to
CPU
All content copyright of QNX Software Systems Co.
52 out of 48
QNX® Momentics® Development Suite

Embedding the Operating System and
Applications
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
All content copyright of QNX Software Systems Co.
54 out of 48
Embedding the OS - System Builder
All content copyright of QNX Software Systems Co.
55 out of 48
Embedding the OS - System Builder
Image
Navigator
Binary and
File System
Builder
Binary
Inspector
Built-in TFTP
Server
All content copyright of QNX Software Systems Co.
Serial
Terminal
56 out of 48
Embedding the OS – Image Builder
Binaries,
Libraries,
DLLs, etc.
All content copyright of QNX Software Systems Co.
Boot File
System
Structure
57 out of 48
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
All content copyright of QNX Software Systems Co.
58 out of 48
Thank you!
Questions and Answers