ID_025C_Dickie_OSEK - Renesas e
Download
Report
Transcript ID_025C_Dickie_OSEK - Renesas e
ID 025C: An Introduction to the OSEK Operating System
Version 1.0
1
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
James Dickie
• Product Manager for Embedded Software
•
•
•
Real-time operating systems
AUTOSAR software components
Software logic analyzer
• Experience:
• 10 years working in Automotive software engineering
• Previous experience of real-time and embedded software engineering in the Oil & Gas
and Telecoms industries
• Education:
• Ph.D. in Digital Signal Processing, University of Strathclyde, Scotland
• B. Eng. in Electronic Engineering, University of Strathclyde, Scotland
2
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Renesas Technology and Solution Portfolio
Microcontrollers
& Microprocessors
#1 Market share
worldwide *
ASIC, ASSP
& Memory
Advanced and
proven technologies
Solutions
for
Innovation
Analog and
Power Devices
#1 Market share
in low-voltage
MOSFET**
* MCU: 31% revenue
basis from Gartner
"Semiconductor
Applications Worldwide
Annual Market Share:
Database" 25
March 2010
** Power MOSFET: 17.1%
on unit basis from
Marketing Eye 2009
(17.1% on unit basis).
3
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Renesas Technology and Solution Portfolio
Microcontrollers
& Microprocessors
#1 Market share
worldwide *
Solutions
for
Innovation
ASIC, ASSP
& Memory
Advanced and
proven technologies
Analog and
Power Devices
#1 Market share
in low-voltage
MOSFET**
* MCU: 31% revenue
basis from Gartner
"Semiconductor
Applications Worldwide
Annual Market Share:
Database" 25
March 2010
** Power MOSFET: 17.1%
on unit basis from
Marketing Eye 2009
(17.1% on unit basis).
4
4
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Microcontroller and Microprocessor Line-up
Superscalar, MMU, Multimedia
High Performance CPU, Low Power
High Performance CPU, FPU, DSC
Up to 1200 DMIPS, 45, 65 & 90nm process
Video and audio processing on Linux
Server, Industrial & Automotive
Up to 500 DMIPS, 150 & 90nm process
600uA/MHz, 1.5 uA standby
Medical, Automotive & Industrial
Up to 165 DMIPS, 90nm process
500uA/MHz, 2.5 uA standby
Ethernet, CAN, USB, Motor Control, TFT Display
Legacy Cores
Next-generation migration to RX
General Purpose
Up to 10 DMIPS, 130nm process
350 uA/MHz, 1uA standby
Capacitive touch
5
Ultra Low Power
Embedded Security
Up to 25 DMIPS, 150nm process Up to 25 DMIPS, 180, 90nm process
190 uA/MHz, 0.3uA standby
1mA/MHz, 100uA standby
Application-specific integration Crypto engine, Hardware security
Microcontroller and Microprocessor Line-up
Superscalar, MMU, Multimedia
High Performance CPU, Low Power
High Performance CPU, FPU, DSC
Up to 1200 DMIPS, 45, 65 & 90nm process
Video and audio processing on Linux
Server, Industrial & Automotive
Up to 500 DMIPS, 150 & 90nm process
600uA/MHz, 1.5 uA standby
Medical, Automotive & Industrial
Up to 165 DMIPS, 90nm process
500uA/MHz, 2.5 uA standby
Ethernet, CAN, USB, Motor Control, TFT Display
Legacy Cores
Next-generation migration to RX
General Purpose
Up to 10 DMIPS, 130nm process
350 uA/MHz, 1uA standby
Capacitive touch
6
Ultra Low Power
Embedded Security
Up to 25 DMIPS, 150nm process Up to 25 DMIPS, 180, 90nm process
190 uA/MHz, 0.3uA standby
1mA/MHz, 100uA standby
Application-specific integration Crypto engine, Hardware security
Innovation
Take control of embedded projects with an OS and tools designed for the job
7
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
An Introduction to the OSEK Operating System
Agenda
• What is an OSEK operating system?
• Why use OSEK OS
• Overview of OSEK OS objects and configuration
• How to build applications with OSEK OS
• OSEK OS: The future
8
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
What is an OSEK Operating System?
• An operating system allows you to partition and control applications
running on a CPU, whilst responding efficiently to interrupts
• OSEK OS gives
•
•
•
•
A very efficient scheduler for tasks and interrupts
Creation of critical code sections
Time-based triggering of tasks
Support for debugging
• It does not provide
•
•
•
•
9
Drivers for graphics, file systems or networks
The ability to spawn new tasks
Memory protection
Support for multicore processors
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Why use an OSEK Operating System?
Motivation
• Embedded software development is often very product or project
focussed…
Reduce
Costs
New
Features
New
Hardware
Deadlines
Code
Reuse
Shorter
Development
Cycles
Maintenance
…resulting in a loss of control in software development and direction
10
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Why use an OSEK Operating System?
Benefits
•
Specification of standard interfaces
• Savings in costs and development time
• Enhanced quality of control unit software
• Independence from individual implementations
•
Efficient design architecture: configurable and scaleable
• Hardware and compiler abstraction
• Static configuration gives low overheads
• Better partitioning and maintenance of application software
•
Mature standard
• Used in millions of ECUs worldwide
• Used in all classes of vehicle electronics
•
•
•
•
11
Body controllers
Powertrain
Chassis
Multimedia
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
OSEK Origins
•
OSEK/VDX resulted from the joining of French and German standardization
efforts
• OSEK = “Offene Systeme und deren Schnittstellen für die Elektronik im
Kraftfahrzeug”
• Open Systems and the Corresponding Interfaces for Automotive Electronics
• VDX = Vehicle Distributed eXecutive
•
OSEK is a joint project of the automotive industry
• “Industry standard for an open-ended architecture for distributed control units in
vehicles”
• The resulting specifications are open for anyone to use
•
•
OSEK has been standardised by the ISO
ISO 17356
• Road vehicles -- Open interface for embedded automotive applications
12
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
The OSEK Specifications
Overview
• OSEK is more than just the operating system!
• A number of complimentary specifications exist
• A Binding is used to identify sets of specifications that work together
• Certification is available
• See www.osek-vdx.org for full details
13
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
The OSEK Specifications
Operating System
• There are three specifications around the OS
• OSEK OS
• An event-driven operating system
• OSEK Implementation Language (OIL)
• A text-based description of an OSEK configuration
• Portable between development tools
• OSEK Run Time Interface (ORTI)
• An interface that allows a suitable debugger to see the OS status
14
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
The OSEK Specifications
Communications
• OSEK also provides specifications for communication
• OSEK COM
• Allows communication over a CAN bus
• OSEK Network Management (NM)
• Serves as the basis for distributed control functions
• OSEK Time
• Time-triggered environment for highly-dependable systems
• OSEK Fault Tolerant COM (FTCOM)
• Provides interfaces and protocols for the fault tolerant transfer of data
within networks
15
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
OSEK OS Objects Overview
• Tasks
• Allow blocks of functionality to be called at runtime
• ISRs
• Handlers for interrupts
• Events
• Allow synchronisation of tasks
• Resources
• Create critical sections of code, giving atomic access to data or peripherals
• Counters & alarms
• Allow time-based triggering of tasks
16
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
OSEK Configuration
•
OSEK OS is statically configured
•
Allows efficient implementation
•
Allows real-time analysis
17
•
•
•
•
All objects are defined in advance
Cannot be created at runtime
Stored as text in OIL file
Allows portability between tools
• Fast execution
• Small memory footprint
• Typically around 2% of total
application overhead
• With suitable implementation and
tools
• Some constraints may apply
CPU rtk_cpu {
OS RTKOS {
STATUS = EXTENDED;
STARTUPHOOK = TRUE;
SHUTDOWNHOOK = FALSE;
ERRORHOOK = FALSE;
PRETASKHOOK = FALSE;
POSTTASKHOOK = FALSE;
USEGETSERVICEID = FALSE;
USEPARAMETERACCESS = FALSE;
};
APPMODE OSDEFAULTAPPMODE {
};
TASK B {
PRIORITY = 1;
SCHEDULE = FULL;
ACTIVATION = 1;
AUTOSTART = FALSE;
};
TASK A {
PRIORITY = 2;
SCHEDULE = FULL;
ACTIVATION = 1;
AUTOSTART = FALSE;
};
TASK osek_idle_task {
SCHEDULE = FULL;
ACTIVATION = 1;
AUTOSTART = TRUE;
};
ISR isr1 {
CATEGORY = 2;
};
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
OSEK Conformance Classes
•
OSEK OS supports 4 conformance classes
• Allows scalability in application development and efficient OS implementations
• Overhead per task increases with the number of features
•
Basic Conformance Class 1 - Aimed at deeply embedded applications
• Tasks have unique priorities
• Tasks cannot wait for events
• Single activations only
•
Overheads
ECC2
Basic Conformance Class 2
ECC1
• Tasks can share priorities
• Tasks cannot wait for events
• Queued activations
•
Extended Conformance Class 1
• Tasks have unique priorities
• Tasks can wait for events
• Single activations only
•
BCC2
BCC1
Extended Conformance Class 2 - Aimed at higher-end applications
• Tasks can share priorities
• Tasks can wait for events
• Single activations only
18
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Features
How to build applications with OSEK
Preemptive Application
Category 1 ISRs to
handle interrupts as
fast as possible
outside the OS
Category 2 ISR
handling sporadic
interrupts with task
activation
Category 2 ISR
from timer with
1ms tick
Counter
registering
ticks
Alarms activating
periodic tasks
ISR 1
ISR 2
ISR 3
ISR 4
Counter
Alarm 10ms
Alarm 5ms
High priority
sporadic task
19
10ms
periodic task
5ms periodic
task
Time (ms)
Idle task
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
How to build applications with OSEK
Cooperative Application
•
Tasks may create scheduling points to allow higher priority tasks to run cooperatively
• Can be useful for porting legacy code to an OS environment
Category 2 ISRs
handling task
activations
High priority tasks do
not run immediately
when activated
Task creates
scheduling point to
avoid hogging the CPU
ISR 1
ISR 2
ISR 3
Time (ms)
Low priority task
20
Mid-priority task
High priority task
Idle task
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
How to build applications with OSEK
Using Resources to create critical sections
• OSEK OS implements the Priority Ceiling Protocol to avoid task
deadlock
Priority boost during
critical section – avoids
deadlock!
Higher priority task
sharing the resource
cannot preempt
Higher priority task not
sharing the resource
can preempt
Low priority task locks
resource to create
critical section
Critical section provides atomic
access to data or peripherals
21
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Time (ms)
How to build applications with OSEK
Debugging support
• OSEK OS has two build levels
• Standard build: minimal error checking in order to be as small and fast
as possible in production units
• Extended build: full error checking and debug hooks
• It is possible to retrieve an error code, the API that caused it and the
parameters passed in the call
• ORTI allows a suitable debugger to see the OS status at runtime
• Which task is running
• What states the other tasks are in
• Trace the execution profile of the system
22
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
OSEK – The Future
• OSEK has been a stable standard for 10 years
• However, the world moves on
• More features, new hardware, better concepts…
• AUTOSAR – www.autosar.org
• Builds on OSEK OS to offer:
•
•
•
•
The same set of features and APIs
Support for memory and timing protection
Support for multicore CPUs
XML configuration
• Key concepts of scalability and efficiency are maintained
23
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.
Summary
• OSEK defines a suite of open standards
• OSEK OS is the operating system component of OSEK
• Efficient implementation via static configuration and conformance classes
• Deadlock free operation via the Priority Ceiling Protocol
• Build a variety of applications using the OS objects and controls
• Extensive debugging support
• Roadmap to the future via AUTOSAR
24
An Introduction to OSEK l JRD l ETAS-STV/PRM-E l 2010
© ETAS GmbH 2008. All rights reserved. The names and designations used in this document are trademarks or brands belonging to their respective owners.