310 likes | 660 Views
Introduction to Embedded Software Development. 2. Embedded Operating System. School of software Engineering 2005. Agenda. What is an Embedded OS? Embedded system OS Windows Embedded VxWorks Embedded Linux. Agenda. What is an Embedded OS? Embedded system OS Windows Embedded VxWorks
E N D
Introduction to Embedded Software Development 2. Embedded Operating System School of software Engineering 2005
Agenda • What is an Embedded OS? • Embedded system OS • Windows Embedded • VxWorks • Embedded Linux
Agenda • What is an Embedded OS? • Embedded system OS • Windows Embedded • VxWorks • Embedded Linux
Operating System Flavors • Desktop • Windows (9X, XP Home, XP/2000 Pro) • Mac • Server • Windows (XP/2000 Server &Advanced Server) • Unix Varieties • Embedded • Many
What is an Embedded OS? • An "embedded system" is any computer system or computing device that performs a dedicated function or is designed for use with a specific embedded software application. • Embedded systems may use a ROM-based operating system or they may use a disk-based system, like a PC. But an embedded system is not usable as a commercially viable substitute for general purpose computers or devices.
What makes a good Embedded OS? • Modular • Scalable • Configurable • Small footprint • CPU support • Device drivers • etc, etc, etc...
What makes a good RTOS? • Multi-threaded and preemptible • Thread priority has to exist because no deadline driven OS exists • Must support predictable thread synchronization mechanisms • A system of priority inheritance must exist
Who are the Embedded OS players? • Microsoft • Embedded NT/XP • “Real-time” control • Windows CE (CE.NET) • Internet devices • Pocket PC 2002 • Handheld PC’s and PDA’s • Wind River Systems • VxWorks • pSOS
Who are the Embedded OS players? • Commercial Embedded Linux • AMIRIX Embedded Linux • Coollogic Coollinux • Coventive Xlinux • Esfia RedBlue Linux • KYZO Pizza Box Linux • Lineo Embedix • LynuxWorks BlueCat • MontaVista Linux • ……
Who are the Embedded OS players? • Open Source Embedded Linux • Embedded Debian Project • ETLinux • uCLinux • uLinux (muLinux) • ……
Who are the Embedded OS players? • QNX Software Systems • QNX • Palm PDA • Palm OS • Symbian • Symbian OS • Green Hills Software • Integrity • ……
Agenda • What is an Embedded OS? • Embedded system OS • Windows Embedded • VxWorks • Embedded Linux
Pocket PC • Information consumption • View and some data entry • Integrated PDA with phone • Interoperability with Office, Exchange and SQL Server • .NET Compact Framework • ASP.NET mobile controls • Smartphone • Information consumption • Primarily data viewing • Integrated phone with PDA • Interoperability with Exchange • .NET Compact Framework • ASP.NET mobile controls • Tablet PC • Complex document authoring, editing and active reading • Note taking and ink annotating • Keyboard centric at the desk, pen & keyboard away from the desk • Keyboard, mouse plus pen, ink, and speech input methods • Full .NET framework preinstalled • Pen, ink, handwriting and speech recognition API’s • Smart Personal Objects • One-way network • Information consumption • Notebook PC • Complex document authoring, editing and reading • Keyboard centric at the desk • Keyboard and mouse input methods • Full .NET framework available Windows CE Windows Mobile Windows XP/XPE Microsoft Mobility Platforms Increased Functionality
Agenda • What is an Embedded OS? • Embedded system OS • Windows Embedded • VxWorks • Embedded Linux
VxWoks • VxWorks is a commercial hard real time operating system developed by wind river systems. • The main idea: use monolithic kernel to schedule user tasks according to user defined priorities. Maximize kernel timing predictability. • Gives the users maximal control.
VxWoks • A dedicated real time system, not intended as a general purpose OS. • lacks many modern os features that interfere with real time performance (flat memory model, no paging).
VxWoks • Scheduling is done using a preemptive priority driven approach, priorities are chosen arbitrarily by the user (0-255). • Priorities can be changed by the user at runtime but this is discouraged. • A user can lock a task so that it can’t be preempted even by higher priority tasks or interrupts. • This allows the use of the fixed priority response time analysis to check schedulability offline.
VxWoks • Is resource sharing aware and has a priority inheritance built in. • Optimizations in implementation of the context switch and the return from interrupts. • The kernel never disables NMI (non-maskable interrupts) so they are always available to the user.
VxWoks - limitations • Lacks many modern OS features. • Guaranteeing the deadlines is the responsibility of the user at design time. • Doesn’t support most modern applications and APIs (only a small subset of POSIX). • Despite the flat memory model dynamic memory allocation still cases memory fragmenting, which increases timing unpredictability.
VxWoks - limitations • A dedicated and widely used real time system. • Offers the user maximal control , but also passes him responsibility for the deadlines.
Agenda • What is an Embedded OS? • Embedded system OS • Windows Embedded • VxWorks • Embedded Linux
outline • A simple view of embedded Linux • Developing process of an embedded devices with embedded Linux • Embedded Linux VS windows CE
Embedded Linux in various devices: NASA personal assistant
Developing Process Rehat,bluecat,RTLinux,Monta Vista Linux,RTAI,… Linux OS select From system design test http://linux.orghttp://www.gnu.org… OS Porting and improvement Driver and Application software development Tekram,HP,Intel,…
Windows embedded VS Linux Embedded Not all embedded windows products Very cheap Royalty Development environment better disagree Functions more disagree shorter Market on time Not sure Developers more Not sure Hardware support equivalency Linux better Argument between Jerry Krasner and Rick Rehrbraum
Windows embedded VS Cont. Linux Embedded Both on strong uptake curve! Oses targeted in current and next embedded projects,2002,data from EDC
Homework What is an embedded Linux?Give some examples. What are the features of embedded Windows compared with embedded Linux? What are the differences of the development processes when you use windows CE and use embedded Linux?