Wind River Optimizing Linux Development Chuck Wissore and Patrick Garvey, September 15, 2005.

52
Wind River Optimizing Linux Development Chuck Wissore and Patrick Garvey, September 15, 2005

Transcript of Wind River Optimizing Linux Development Chuck Wissore and Patrick Garvey, September 15, 2005.

Wind RiverOptimizing Linux

Development

Chuck Wissore and Patrick Garvey, September 15, 2005

© Wind River, 2005 2

Agenda

• Introduction to Wind River• HAT/SAT Products• Why Linux?

• Linux tools today

• Wind River Solution• Overview• Key Features• Benefits• Value Proposition

• Wind River Firmware Tools• Wind River Work Bench 2.3• Summary/Questions?

© Wind River, 2005 3

Wind River

• Founded 1981, IPO 1993

• Market Share Leader• 30% of Commercial Market

• 4x nearest competitor

• $204M FY 2004 Revenue

• 4,000+ Customers

• Running in 300+ Million Devices

• 1,100+ Employees

• Worldwide Footprint

© Wind River, 2005 4

About Wind River

• Vertical market focus

• Network Infrastructure

• Aerospace/Defense

• Automotive

• Digital Consumer

• Industrial

• Operating systems

• Development tools

• Professional Services

• Hardware bring-up-tools, JTAG Emulator, and development boards

© Wind River, 2005 5

Partners

Silicon

Operating SystemsDevelopment Boards

Wind River HAT/SAT

© Wind River, 2005 7

Wind River On Chip Debugging Product Overview

Wind River Workbench

Wind River PROBE-100 MHz JTAG Clock- USB 1.x and 2.0 Compliant- Bus Powered

Wind River ICE - Multi-Core - Multi-Session

Wind River TRACE- 200 MHz TRACE Speed

Wind River TRACE - High-speed real-time trace buffer- Filtered Trace- Modular Hardware Design- Graphical user interface- Target versatility- Ability to capture up through: 1 Million lines of code.

visionCLICK

© Wind River, 2005 8

Wind River Compiler

• Wind River Compiler• Market leading C/C++ compiler (DIAB)• Used by silicon vendors to demonstrate new processor capabilities• Key Features:

• Full-spectrum RTOS support• Configurable for speed, code footprint and other variables• Edison Design Group C++ front-end• ANSI compliant

• Additional optimizations on key architectures• PMC-Sierra RM9000• Power PC• MIPS

Industry’s most flexible complier solution

© Wind River, 2005 9

Architectures Supported

• PowerPC• Motorola

• 505, 509, 555, 561, 563, 565• 603/740/745/750/755• 821, 823, 850(variants), 860

(variants), 855, 857, 862• 8240/8241/8245• 8250/8255/8260/8264/8265/8266

• IBM• 403 (variants)• 405 (variants) (no 405ZGPr)• 440GP/GX• 603 (variants)• 750, 750CX, 750CXe, 750FX

• MIPS• 32/64 Alchemy, Broadcom, NEC,

PMC-Sierra, Phillips, Toshiba & IDT

• ColdFire• MCF5202, 5204, 5206, 5206E,

5249, 7272

• MCF5307, 5307a

• Mcf5407

• ARM• ARM7DI, ARM7TDMI,

TRISCENDA7

• ARM9TDMI

• ARM920T

• ARM940T

• XScale• IXP310/321/80200

• PXA210/250

• IXP425/2400/2800

Wind River ICE and Wind River Probe

© Wind River, 2005 10

Reference Design

• Wind River provides Hardware Reference Designs that provide our customers with a fully functional platform.

© Wind River, 2005 11

Reference Design Architectures Supported

ARM • SBCARM7

Intel XScale• PPMC80310 • SBCPXA250

MIPS

• PPMCMIP32 • PPMCIDT334

Expansion Boards• PCI Expansion Unit • PMC/PCI 64-bit Development System

PowerPC• Motorola Scout• PPMC440GP• PPMC750/755/7400• PPMC750CX –750CXE• PPMC750FX• PPMC8245/8241/8245• PPMC8260• SBC405GP• FPGA PMC• SBC555• SBC7410• SBC8560/40 • SBC7447/SBC7457 • SBCPOWERQUICC II (MPC8250/60/65/70/80)• MdpPRO8xx

© Wind River, 2005 12

Why Support Linux?

• Wind River is the market leader in commercial RTOS and embedded tools market space.

• Linux is still new to the embedded market space and lacks standard tools and services support.

• Wind River recognizes the need for industry leading tools and services support.

• Wind River has the ability to leverage it’s embedded market expertise to bring a best of breed solution to the market.

© Wind River, 2005 13

Linux Tools Today

ConfigureOS

SharedLibraries

Optimizations

DynamicLinkedImages

UserLibraries

Applications

Boot

I/O

Mount FileSystem

HardwareBring-up

Application Development

Kernel ConfigurationOS Initialization/Driver Development

Board Bring-up

KGDB - Today GDB - Today

Other Application Development Tools

Limited in feature set and

coverage.

Limited in feature set and

coverage.

© Wind River, 2005 14

Challenges of Linux Development

• Most tools require a boot-loader first –• Linux relies on a boot-loader for initialization of the

Kernel.• Why wait for the boot-loader to start kernel/driver

development on your custom hardware?• What tools are available to support my boot-loader

development efforts?

• Losing control of the KGDB debugger –• If the OS crashes the debugger channel crashes as

well.

• Understanding what Linux is doing –• How do I know when I am debugging in virtual or

physical memory.

• Tied to basic debugging techniques• Use of printf• Current tools tied to a specific Linux distribution.• Current tools cannot debug both the application and

the kernel without having to run two debug agents.

Target board

© Wind River, 2005 15

Wind River Solution:

Provide the ability to bring-up and debug an operating system, such as Linux, that supports virtual memory and memory protection.

Wind River’s Solutions to Linux

© Wind River, 2005 17

Wind River’s Linux Tools Coverage

Wind River’s Workbench & Wind River ICE or Wind River PROBE

ConfigureOS

Optimizations

DynamicLinkedImages

UserLibraries

ApplicationsBoot

I/O

Mount FileSystem

HardwareBring-up

Application Development

Kernel ConfigurationOS Initialization/Driver Development

Board Bring-up

SharedLibraries

Provided by INSMOD support in latest visionCLICK LINUX release

© Wind River, 2005 18

Tools For Linux

• The development cycle using embedded Linux is no different than with any other embedded OS.

• Technical details vary, but the workflow is the same.

ManufacturingOptimization

& TestAppl Dev& Debug

Drivers, BSPOS Bring-Up

HW Bring-Up

Linux Firmware

Tools

Wind River Workbench 2.3

for Linux

Firmware Tools for Linux

© Wind River, 2005 20

Firmware Tools for Linux

• Wind River Workbench with WR ICE and WR PROBE JTAG emulators have been enhanced with Linux awareness.

• Makes it MUCH easier to bring-up Linux on new HW.

• Can be used with any version of Linux.

• PPC 405/440 & 824x/6x/7x/8x MIPS4Kc/ec FCS now.• Additional arches rolling out through 4Q05.

JTAG

Workbench

New Hardware

Ethernet

or LPT

Wind River ICE or

Wind River PROBE

© Wind River, 2005 21

What Are The Benefits?

• Can get Linux running before boot loader or BSP written.• Easier to debug drivers/BSP & boot loader if board is “talking to you”• Competing solutions require sequential development (time consuming)

• Total system control, even if Linux crashes.• Critical in early stages when stabilizing drivers and BSP• Competing tools crash when the kernel crashes

• Eliminates the virtual memory mystery.• Shows where code is in physical and virtual memory.• Competing tools just show virtual. Useless for embedded work.

• Can be used with any Linux distribution.

© Wind River, 2005 22

The Products Behind The Solution:

• Provide customers with reliable development tools for early access to their CPU’s On Chip Debugging capabilities.

Debugger

Development Boards

• Professional Services Support

• Backed by years of experience in the embedded industry

JTAG/BDM

© Wind River, 2005 23

Key Features:

• Wind River Boot Line• Hardware Bring-Up without a BSP

or Boot Loader.

• Wind River Direct Debug: • Kernel and User Level Debugging• Breakpoint Support:

• Physical Memory• Virtual Memory

• Wind River VMI™• Identifies when you are debugging

in physical or virtual (effective) memory.

© Wind River, 2005 24

• “CF MMU ENABLE” • “CF BL ENABLE” • “CF WSPACE xxxxx yyy” • “CF TRPEXE NO” • “CF VECTOR ZERO”• “MMUA xxxxxxxx yyyyyyyy zzzzzzzz”

Key Features: JTAG Capabilities (cont’)

• A rich set of commands to debug and bring up Linux

© Wind River, 2005 25

Key Features: JTAG Capabilities (cont’)

• “CF MMU ENABLE”• Turns on Linux MMU Support

• “CF BL Enable”• Loads the Boot Line Parameters on initialization (“IN”)

• “CF WSPACE xxxxx yyy” • Sets the workspace for the boot line parameters.

• “CF TRPEXE NO”• Stop monitoring exceptions for runtime speeds.

• “CF VECTOR ZERO”• Configure vector table pointer to zero on “IN”

• “MMUA xxxxxxxx yyyyyyyy zzzzzzzz”• Automatically biases the link address (xxxxxxxx) of the download

image, and PC to the RAM address (yyyyyyyy), and the mask (zzzzzzzz) determines the nibbles bias nibbles.

© Wind River, 2005 26

Key Features: Wind River Boot Line

The Boot Line Utility allows a user to

setup the bootline parameters, which are

passed to Linux on startup (after the

Linux image is downloaded over the

JTAG port).

• Wind River technology that allows you to create Linux Kernel images and directly download them to the target without using a boot loader

© Wind River, 2005 27

Key Features: Wind River Direct Debug

• Wind River technology that allows the debugging of the Linux kernel and processes running in User mode without the need for an embedded agent OR kernel instrumentation.

• Supports breakpoints in both physical and virtual memory.

© Wind River, 2005 28

Key Features: Wind River VMI™(Virtual Memory Indicator)

Virtual Memory Indicators enable the developer to identify where the code is executing, virtually and physically.

• Wind River technology that gives you full visibility: both virtual and physical memory

• Source level debug that lets you know what the OS is doing and where the OS is running

© Wind River, 2005 29

Key Features: Wind River VMI™ (cont’)

• Clear indication of the MMU translation mode AND the actual memory translations.

Arrow Points Right: Indicating that MMU is turned off, but the code is compiled and linked to the virtual address space on the left – useful in finding link errors.

Arrow Points Left: Indicating that MMU is turned on, and we are operating in the virtual address space. In this case the PC address is the source linked address: 0xC00089C0While the physical address is 0x000089C0

Arrow Points Right: Indicating that MMU is turned off, and we are operating in the Physical Address space with one to one mapping.

© Wind River, 2005 30

Source Code Display

Read/Modify of

Virtual Memory

Logical to

Physical Address

Translation

Summary: All of your vital information on your desktop

Linux Runtime Shell Output

© Wind River, 2005 31

Benefits

• No target agent (GDB or KGDB) required

• System Mode debugging even in User Mode

• Simultaneous debug of Kernel and User application

• Same bring-up tools for Linux, VxWorks, or your in-house proprietary OS

• The same tools can be use not only in design, but in testing as well

NO MORE INSTRUMENTATION

COMPLETE CONTROL AT ALL TIMES

SINGLE TARGET CONNECTIONFOR EVERYTHING

NO MORE SWITCHING TOOLS

COMMONALITY

Wind River visionCLICK Demo

Wind River Workbench 2.3

© Wind River, 2005 34

Wind River Workbench

1. Mix a broad range of proven, best in class, embedded development tool capability

Tornado

visionPROBE II

SingleStep

SniFF+

2. Combine in a open, extensible, development environment framework with strong third party support

3. Provide common tools for the most popular processors, hosts, and embedded operating systems

VxWorks® 6.0

LinuxWind River Workbench

© Wind River, 2005 35

Open and StandardThe ECLIPSE Model

Eclipse is an open framework and platform for device development tools that leverages open-source licensing and a

community of tool developers

• Eclipse Platform• Tools• Technology• Web Tools Platform• Test and Performance Tools Platform

75 Member Organizations 640 + 3rd Party Plug-Ins

© Wind River, 2005 36

Eclipse Strategic Developer Member

•WindRiver Manages a Project•WindRiver Invests millions of dollars every year•WindRiver has 10 dedicated engineers contributing to the Eclipse project

© Wind River, 2005 37

Eclipse Plug-In Examples

• JDT – Java Development Tools• PyDev – Python Development environment• Editors

• SlickEdit Studio• EclipseWiki editor• XMLBuddy (XML Editor)• JSEditor (Java Script)

• Source Code Management• ClearCase • CVS

• EclipseUML (visual modeling)• Per Eclipse Openness, You can create custom plug ins

© Wind River, 2005 38

Eclipse Framework

Wind River Workbench 2.0

Graphical User Interface

3rd PartyTool

AlternateEditor

SystemViewer

3rd PartyCM

Project

Compiler

Build

Editor

Debugger

SourceAnalyzer

Data

Perform

Memory

Coverage

Analysis

Wind River Workbench

Linux

Target Agent Connectivity

Host Shell

© Wind River, 2005 39Other OS

Eclipse Framework

Wind River Workbench 2.2

Graphical User Interface Host Shell

3rd PartyTool

AlternateEditor

SystemViewer

3rd PartyCM

Data

Perform

Memory

Coverage

Project

Compiler

Build

Editor

Debugger

SourceAnalyzer

Analysis

Wind River Workbench

VxWorksSimulator VxWorks Linux No OS

Target Agent and OCD Connectivity

© Wind River, 2005 40

Wind River Workbench 2.3

Graphical User Interface

Eclipse Framework

System Viewer 3rd Party CMProject Editor

Build

Compiler

Source Analyzer

Debugger

AlternateEditor

3rd Party Tool

Data

Memory

Perform

Coverage

Target Agent and On-Chip Debugger Connectivity

Trace

Analysis

Wind River Linux GNU Tool Chain

Wind River Linux Platforms

Roll-Your-Own Linux

Other Commercial Linux Distributions

VxWorks ThreadX Other OS

© Wind River, 2005 41

What Are The Benefits?

• Total system debug.• Competing tools cannot debug apps & drivers at same time.

• Debug & analyze multiple CPUs at the same time.• Understand interactions in a multi-processor system.

• Develop & debug on Linux & VxWorks at same time, same tool suite.

• Great for multi-CPU systems that mix both OSs. This is unique.

• Firmware development & app development in the same tools suite.

© Wind River, 2005 43

Project Facility and Build System

• Project System• Wizards and templates accelerate setup of

common project types• Import mechanisms for legacy code project

files• Easy project manipulation via drag and drop

• Build System• Useful default settings to shorten time-to-build• Build tools and build specs completely

graphically configurable via property sheets for advanced customization

• File-level build settings, custom link order and multiple build targets for expert setup

• Command line build support for scripts and nightly updates

• Integration with custom makefiles to support legacy projects

© Wind River, 2005 44

Source Analysis

• Code and Symbol Browsing• Symbol definition lookup and quick source code

navigation to reduce learning curve of unfamiliar code

• Problem Solving • Workbench Debugger enhanced with source analysis

features solves runtime problems more quickly

• Powerful Editor• Code completion, macro expansion and other

productivity features

• Support for 3rd party editors via Eclipse plug-ins

© Wind River, 2005 45

High Capability Debugging

• Multiple Context Wind River Debugger

• View, control and debug multiple:• task,

• process,

• threads and

• processors concurrently

• Rich target agent enablement

• Single session Kernel & User mode debug via a single agent

• Task mode and system mode debugging

© Wind River, 2005 46

Windsh and Kernel Shell

• Windsh• A command line shell for monitoring and debugging

• Provides gdb command line of Wind River Workbench debugger

• Based on the popular VxWorks shell• Symbolic debug monitor

• Work at assembly language level

• Tcl scripting capability

• Can be seen as the command line version of the debugger

• Makes kernel and driver development of Linux as easy as traditional embedded development

• Kernel shell• Provide the famous VxWorks shell into the Linux kernel

© Wind River, 2005 47

Workbench Target Connections

• Wind River ICE

• Wind River Probe

• Linux KGDB

• Linux User Mode Agent

• Target Server (WDB Agent)• Linux

• VxWorks

• Simulator• Instruction Set

• VxWorks

© Wind River, 2005 48

Wind River System Viewer

Easier event log navigation thanks to radar screen

More activity occurring around here

*Here showing BSD/OS events

- Superior instrumentation- User and kernel instrumentation- Supports triggering which LTT does not have

© Wind River, 2005 49

File System Creator

• Features• GUI based• Easily select the few files your system needs out of the thousands of files of a

Unix like system• Handles special files like link, devices, socket, fifo• Automatically analyses and import static and dynamic shared libraries

required by selected system or application binaries• One click filesystem image build - One click bootable image generation• Based on tash restricted shell to prevent trashing host filesystem

• There is no way to identify all possible dependencies that exists between all the OS files • a filesystem creation tool should not attempt to solve the entire problem• focus on the most common cases

Wind River Workbench 2.3 Demo

Questions

Wind River

Thank You!

END