Wind River Optimizing Linux Development Chuck Wissore and Patrick Garvey, September 15, 2005.
-
Upload
andra-phelps -
Category
Documents
-
view
215 -
download
1
Transcript of Wind River Optimizing 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 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, 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
© 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, 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