Upload
others
View
12
Download
2
Embed Size (px)
Citation preview
2 © 2007 Wind River
Agenda
• Wind River Real-Time Solutions• VxWorks 6.x Hard RT Architecture• Wind River RTLinux
3 © 2007 Wind River
• Dual-kernel technology• Runs a single real-time process
within a non-real-time OS• Designed for mission critical
applications that require hard real-time
• 100% determinism• Proprietary and patented IP
solution• Largely independent of
architectures or existing drivers
• Open-source patches to standard kernel
• Run one or more processes with soft real-time priority
• Designed for audio/video other “bandwidth” applications with ‘statistical determinism”
• “Pure open-source” solution in mainstream kernel
• Implementation dependencies on drivers, SMP, architecture
Hard Real-Time Linux
We Will Offer Three Real-Time Solutions
• Designed from the ground-up for hard real-time
• Run multiple real-time processes within a fully real-time operatingsystem
• All hard real-time applications with very small footprint
• Certifiable • 100% determinism• Proprietary IP solution• Broadly available across all
architectures and processors
Soft Real-Time Linux
Wind River Linux
Hardware
Linux Applications
Standard Linux Kernel
Interrupts
PREEMPT_RT
Wind River VxWorks
Hardware
VxWorks Real-Time Process
Kernel-Mode Applications
Device Drivers
Hardware Interrupts
Linux Applications
VxWorksWind River Linux
Device Drivers
Standard LinuxKernel
Wind River Real-Time Core
Real-Time App.
VxWorks
Device Drivers
Interrupts
5 © 2007 Wind River
VxWorks 6.x - Features
• VxWorks 6 memory protection– MMU-based real-time processes for user-mode applications– Protects kernel from applications, and apps from each other
• VxWorks 6 msg channels interprocess communication– Enables IPC between real-time processes, – Transparent messaging across systems and Oses
• VxWorks 6 shared libraries and shared data– Shared libraries enable common code re-use and footprint savings– Shared data enable fast, simple IPC
• VxWorks 6 error management– Automatic detection and reporting for common memory errors– API to manage application errors
• VxWorks 6 improved standards support– Improved POSIX compliance in user-mode– IPv4/IPv6 dual-mode stack; approved for “IPv6 Ready” logo phase II– Open source industry standard TIPC protocol for IPC
8 © 2007 Wind River
• Transforming Linux into an RTOS• FSMLabs & RTLinux• RTLinux in Applications• What is RTLinux? How does it work?• RTLinux and Hard Real-Time Systems• Developing RTLinux Applications• RTLinux and its modules• RTCore & Preempt_RT• Commercial Grade Linux
9 © 2007 Wind River
Transforming Linux into an RTOS
Two basic methods of making Linux a RT operating system:• PREEMPT_RT and the Kernel Preemption Patches
– the benefit of being part of the mainstream Linux Kernel development– well suited to certain types of real-time application development such as
audio or video streaming – incapable of yielding 100% guaranteed real-time performance
• Wind River Real-Time Core for Wind River Linux and the Real-Time Executive Approach– not a part of the standard Linux OS– not licensed by the GPL– immediately capable of providing a guaranteed hard real-time
10 © 2007 Wind River
FSMLabs & RTLinux
• In February 2007, Wind River acquired FSMLabs patented IP of hard real-time Linux technology
• RTLinux was developed as a master thesis project at New Mexico Tech, Socorro, NM in ~1996 by:– Dr. Victor Yodaiken & master’s student Michael Barabanov
• RTLinux to community under an open patent license ~1997• Cort Dougan joined the project and added PowerPC support
to RTLinux in ~1998• Yodaiken and Dougan formed Finite State Machine Labs
(FSMLabs) in 2000 to support commercial customers• RTLinuxPro - Professional, commercial version of RTLinux
12 © 2007 Wind River
RTLinux in Military/Aerospace
BBN has used RTLinux in ad hoc Network for Harris Systems’ Linux based Military radio system
JSF-135 Engine on RTLinux controlled test stand
13 © 2007 Wind River
RTLinux in Research/Entertainment
Charles Nichols at Stanford plays an RTLinux powered Haptic violin
Cablecam, the “flying camera” atsporting events, has used RTLinux to control the winch motors
14 © 2007 Wind River
RTLinux in Telecommunications
Infineon and Comneon have used RTLinux as the basis for the first single-core mobile phone
RTLinux in cell phone Management in Europe
15 © 2007 Wind River
RTLinux in Robotics
Samsung Heavy Industries (SHI) has usedRTLinux as the basis for controlling the“Spider” welder in shipbuilding
Fujitsu has used RTLinux to buildindustrial and humanoid robots
16 © 2007 Wind River
RTLinux in Automotive
RTLinux has been used in Diamler-Chrysler portable diagnostictools
© 2007 Wind River
RTLinux
FSM Lab’s RTLinux
RTCore(real-time scheduler)
Hardware
RTLinux
Real-Time App
Kernel.orgv. 2.6.x
User Space
Kernel Space
ext3 file systemgcc 3.x
© 2007 Wind River
Wind River Real-Time Core for Linux
• GPL-Safe
• Standards-Based
• Mature and Stable
• Fast and Deterministic
• Cost-Effective
• Proprietary and PatentedWind River
Real-Time Core
HardwareHardware
Wind River Linux
Linux Applications(Networking, Mgmt. Solutions, etc.)
Real-Time App.
20 © 2007 Wind River
Hardware
Linux Kernel (2.6)
Command Line Interfaces X Windows
GUI Tools
VMWare Eclipse Browser
Windows
No real-time guarantees!
Linux System
Diagram of a basic Linux system
21 © 2007 Wind River
RTCore-aware System
Hardware
RTLinux Kernel (2.6)
Command Line Interfaces X Windows
GUI Tools
VMWare Eclipse Browser
Windows
No real-time guarantees!
Basic Linux kernel replaced byRTLinux kernel.
GPL Linux kernel with RTLinux “hooks”
22 © 2007 Wind River
Hardware
RTLinux Kernel (2.6)
Command Line Interfaces X Windows
GUI Tools
VMWare Eclipse Browser
Windows
No real-time guarantees!
RTCore
RTCore-enabled System
GPL Linux kernel with RTLinux “hooks”
RTCore controls hardware interrupts,Linux highest priority thread
23 © 2007 Wind River
Hardware
RTLinux Kernel (2.6)
Command Line Interfaces X Windows
GUI Tools
VMWare Eclipse Browser
Windows
Real-time guarantees!
RTCore
Real-Time System
RT App
RT App (PSDD)
GPL Linux kernel with RTLinux “hooks”
RTCore controls hardware interrupts,RT App has highest priority threaddetermined by programmer
24 © 2007 Wind River
Decoupled Architecture
Hardware
RTCore OS
Real-Time Applications
GPL Linux Kernel & OS
General purpose Applications
POSIX APIs
LNet ControlsKit
Inte
rrup
t Con
trol
PSD
D G
POS
Thr
eads
• Linux “thinks” it is directly interactingwith hardware
• RTCore virtualizes interrupts to Linux
26 © 2007 Wind River
Initial Benchmark ComparisonsResults in Microseconds on an ARM processor
Measurement VxWorksWind River
Linux 1.4 with RTCore
Wind River Linux 1.4 with PREEMPT_RT
Wind River Linux
Co-operative context switch: elapsed time from task A yielding of the CPU until task B is scheduled on the CPU and is executing task B application code
TBD 21.2us 492.3us 1653.3
Pre-emptive context switch (pre-emption latency): Elapsed time from a task becoming the highest priority runnable task on a CPU until the CPU is executing the task's application code
TBD 103.9us 348.0us 1512.0
Interrupt latency: Elapsed time from a hardware interrupt being asserted to a CPU until the CPU begins executing the handler corresponding to the interrupt.
TBD 82.7us 140.0us 1370.6
28 © 2007 Wind River
The RTLinux API, Briefly
• Follows the POSIX standard closely• Differs slightly on SMP calls as some are not defined• Programmers primarily develop in C or C++• If a programmer is familiar with development in C or C++,
programming RTLinux applications should be very straight forward
29 © 2007 Wind River
Designing RTLinux Applications
• Programmers are recommended to separate real-time applications from non real-time (GPOS) applications
• Time sensitive code needs to be scheduled by RTCore and the RTLinux API needs to be used
• Code that requires access to more complex non real-time applications, e.g. file systems, needs to be scheduled by the Linux host and its API
30 © 2007 Wind River
RTLinux & Linux Communication
• RTLinux can pass information to Linux (non real-time) applications– FIFOs– Shared Memory– Interrupts
• FIFOs are preferred method & widely used• FIFOs are preferred to be created unidirectional, not
bidirectional
31 © 2007 Wind River
• Running RTLinux modules same as executing regular programs, e.g. ./example.rtl
• “Insmoding” real-time application done seamlessly in the background
• Developer doesn’t have to worry about correct linking with kernel
• Real-time is based on threads• Memory allocation done in main() function
Compiling, Running RTLinux Applications
33 © 2007 Wind River
Process Space Development Domain (PSDD)
• PSDD RT threads run in the context of a UNIX process• Hard real-time performance like with in-kernel RTCore• Lightweight system calls and process context switching• Most of the RTCore API is available for PSDD threads• Access to RTCore device drivers, LNet• C, C++, Fortran support• Basis for ARINC; provides time & space partitioning
34 © 2007 Wind River
Frame Scheduler (fsched)
• Schedules of PSDD RT threads in terms of major and minor cycles
• Provides command line and programming interfaces• Mostly used for simulations – easier debugging• Implemented as just another PSDD application
36 © 2007 Wind River
The Engineering Tradeoff:RTCore & Preempt_RT
• RTCore– Alternative API designed specifically for real-time application support– In-kernel execution achieves optimized, guaranteed performance– API allows coordination with cooperating applications existing under
Linux host kernel– PSDD module allows real-time applications to reside in memory
protected Linux user space
• Preempt_RT– Maximize preemptability of the native Linux API– Traditional Linux API semantics– Aggressive improvement but difficult to guarantee– Access to API via syscalls and more complex abstractions limit
attainable performance
38 © 2007 Wind River
Linux Tools That Span the Software Lifecycle
Implementation Integration TestDesign
3rd Party UML Eclipse Plug-in
Source Code Analysis & Navigation
Linux Kernel Debug (KGDB)
On-Chip Debug (JTAG)
Application Debug (user-mode)
System Viewer
ProfileScope
Stethoscope
MemScope
Native Linux Debug
Unit Tester
Diagnostics
40 © 2007 Wind River
Key Features of Workbench Diagnostics
• Sensor Points– Software test points that can be
dynamically placed into a running application
• No pre-instrumentation required in application code
– No modification to application source code required
– Minimally intrusive to application operation
– Tightly integrated tool set
• Core Image Generation– Comprehensive system state
information at the point of exception– Tightly integrated tool set
Application
kernel
SP 1
SP 2
SP 4
SP 3
SP 5
Application
kernel
Core Image
41 © 2007 Wind River
Open Source Transparency and Maintainability
Wind River Linux cross build system
Pristine Open-Sourcepackages
• tar.gz• src.rpm
Open-Sourcecommunity patches
• diff• src.rpm
Wind River Linux cross toolchain
customizedtarget binaries
Wind River & partnerpatches
• diff• src.rpm
validatedWind River pre-built
target binaries
validateddistributionsource tree
customized distributionsource tree
Customerpatches
• diff• src.rpm
Benefit – maintain only one source base for many different projects
Benefit – easier to apply patches to all platforms and to integrate new open source patches
42 © 2007 Wind River
Flexible SupportOnly Device company certified for “Support Center Practices”
ReferenceKernel/BSP
ModifiedKernel/BSP
CustomBoard
ReferencePackages
ReferenceBoard
ReferenceKernel/BSP
ModifiedPackages
ReferenceBoard
ModifiedKernel/BSP
ReferenceBoard
ReferencePackages
ModifiedPackages
ModifiedPackages
Technical Support Request (TSR)24 Hours Initial Response
Full Support orBest Effort?
Reproducedon Reference
Platform?
Customer SpecificSupport through
Wind River Services
Workaround or Patchfor Reference Platform
Product UpdateRelease
No
Yes
BestEffortFull
Wind RiverCommunity Efforts
ReferencePlatform
ModifiedPackages
ModifiedPackages
ReferenceHost OS
ReferenceToolchain
ReferenceHost OS
ReferenceToolchain
ReferenceHost OS
ReferenceToolchain
CustomHost OS
ReferenceToolchain
Open SourceCommunity
Software ProblemReport (SPR)• Critical• Severe• Standard• Low
43 © 2007 Wind River
Summary
Wind River is uniquely qualified to address a customer’s device software requirements
through a combination of…
– 20+ years of device software experience– Flexible and proven integrated run-time solutions – Open and extensible development suite for all project phases– Global support delivered locally– World class Professional Services– Unique value-added partnerships and ecosystem