Vous êtes sur la page 1sur 23

Teaching an Embedded

Systems Software Course


using Windows CE: An
Experience Report
Jogesh K. Muppala
Dept. of Computer Science
The Hong Kong University of Science and Technology
Clearwater Bay, Kowloon, Hong Kong
muppala@cs.ust.hk
Talk Outline
ƒ Introduction
ƒ Background
ƒ The Course
ƒ Course Topics and Structure
ƒ Textbooks and References
ƒ Hands-on Laboratory Exercises
ƒ Course Project
ƒ Reflections on the Course
ƒ Students
ƒ Student background
ƒ Student feedback
ƒ Conclusions

Jogesh K. Muppala MSRA Theme Workshop 2006 2


Introduction
ƒ Embedded systems are growing in
importance, widespread deployment and
complexity
ƒ Software is becoming an important
component of embedded systems
ƒ Training manpower on the design and
implementation of embedded software is
becoming increasingly important

Jogesh K. Muppala MSRA Theme Workshop 2006 3


Background
ƒ Embedded systems courses are now
being offered more frequently in
universities
ƒ Most courses concentrate on hardware
ƒ Our course is designed especially for
embedded systems software
ƒ Inherits ideas and topics from real-time
systems, software development and software
engineering

Jogesh K. Muppala MSRA Theme Workshop 2006 4


The Three “S”s of a Systems
Course

State-of-the-
Art Science

Skills

Jogesh K. Muppala MSRA Theme Workshop 2006 5


Course Topics and Structure
ƒ Three major areas emphasized in the
course:
ƒ Embedded software development
ƒ Real-time and embedded operating systems
(RTOS)
ƒ Embedded software engineering
ƒ Striking a good balance between theory
and practice

Jogesh K. Muppala MSRA Theme Workshop 2006 6


Course Topics and Structure
ƒ Introduction ƒ Real-Time Operating Systems (RTOS)
ƒ Introduction to Embedded Systems ƒ Review of Operating Systems Basics
ƒ Examples of Embedded Systems ƒ Tasks, Processes and Threads
ƒ Embedded System Characteristics ƒ Task Scheduling: Rate Monotonic
Scheduling, Priority Inversion
ƒ Embedded Systems Architecture ƒ Task Synchronization and Coordination
ƒ Hardware Fundamentals: Processors, ƒ Intertask Communication
Memory, Bus, etc. ƒ Memory Management
ƒ Software: OS, Application Software ƒ Example RTOS: μC/OS-II, Windows
ƒ Embedded Software Development CE,, Embedded Linux, J2ME
ƒ Hosts and Targets ƒ Embedded Software Engineering
ƒ Interrupts ƒ Basics of Software Engineering
ƒ Introduction to Interrupts ƒ Software Engineering Models
ƒ Interrupt Handlers and Interrupt ƒ Unified Modeling Language (UML)
Service Routines ƒ Software Testing
ƒ Embedded Software Architectures ƒ Testing and Debugging Embedded
Systems

Jogesh K. Muppala MSRA Theme Workshop 2006 7


Textbooks and References
ƒ Finding suitable textbook covering all the
topics not straightforward:
ƒ Recent nature of the field
ƒ Too diverse set of topics
ƒ Material drawn from various textbooks from
areas including real-time systems, software
engineering, and embedded systems
ƒ Consulted the MSDN library for Windows CE
related materials

Jogesh K. Muppala MSRA Theme Workshop 2006 8


Hands-on Laboratory Exercises
ƒ Major goals:
ƒ Introduce students to various IDEs and
embedded environments
ƒ Give an overview of various techniques for
embedded software development including
aspects of RTOS
ƒ Preparing the students for course project

Jogesh K. Muppala MSRA Theme Workshop 2006 9


Hands-on Laboratory Exercises
ƒ Hands-on laboratory component concentrates
mainly on the use of several real-time OS and
integrated development environments
ƒ Mainly Windows CE, Platform Builder, Embedded
Visual C++, Visual Studio 2005 based mobile
development
ƒ Some labs on μC/OS-II, J2ME
ƒ General computer laboratory used
ƒ Dedicated embedded software laboratory being set
up

Jogesh K. Muppala MSRA Theme Workshop 2006 10


Hands-on Laboratory Exercises
ƒ Laboratory Set-up:
ƒ Standard PCs running WinXP used as
development hosts
ƒ Windows CE .NET Platform Builder used as
the development environment
ƒ Embedded VC++ and Visual Studio 2005
used for application development
ƒ Most initial training using Emulator and CEPC
setup

Jogesh K. Muppala MSRA Theme Workshop 2006 11


Hands-on Laboratory Exercises
ƒ Specialized equipment for embedded
laboratory:
ƒ Ebox-II from ICOPtech

ƒ Intel PXA255 based embedded development


boards from Emdoor Inc., Shenzhen

Jogesh K. Muppala MSRA Theme Workshop 2006 12


Hands-on Laboratory Exercises
ƒ Typical set of laboratory exercises include:
ƒ Introduction to Platform Builder
ƒ Advanced PB and debugging features
ƒ Application development using eVC++ and VS 2005
ƒ Threads and thread synchronization in Win32 API
ƒ Interprocess communication using message queues,
MSMQ, events
ƒ Priority scheduling and priority inversion issues
ƒ Memory leaks and detection

Jogesh K. Muppala MSRA Theme Workshop 2006 13


Course Project
ƒ Team project with teams of up to 3 students
ƒ Main emphasis on demonstrating the use of techniques
learnt in the course
ƒ Diverse range of topics last year:
ƒ Positioning system using bluetooth on pocket pc
ƒ Several J2ME based projects:
ƒ Multi-player paper, rock, scissors game
ƒ Integrated Multimedia environment including audio player and
image manager
ƒ Chat room and instant messaging system
ƒ Implementing priority inheritance protocol in μC/OS-II
ƒ This year more emphasis on WinCE based projects with
the availability of Ebox-II

Jogesh K. Muppala MSRA Theme Workshop 2006 14


Reflections
ƒ Topics covered in the course:
ƒ Embedded software development:
ƒ Both theoretical and practical aspects
ƒ Emphasis on cross-platform development and cross-
compilation
ƒ Real-time OS
ƒ Review of general OS related topics
ƒ Emphasis on RTOS issues including scheduling and
synchronization
ƒ Possible overlap with existing OS, real-time courses

Jogesh K. Muppala MSRA Theme Workshop 2006 15


Reflections
ƒ Topics covered in the course:
ƒ Embedded Software Engineering:
ƒ Difficult to do good justice to this area
ƒ Lack of suitable large-scale case studies
ƒ UML extensions for real-time just now appearing
and most in research stage
ƒ UML coverage hampered due to lack of good
application examples

Jogesh K. Muppala MSRA Theme Workshop 2006 16


Reflections: Some Questions
ƒ What is so special about embedded software?
ƒ Does this conglomeration of diverse topics
deserve a special course?
ƒ Why not cover the related topics in the courses
dealing with those specific topics?
ƒ How do we address the overlap of topics with the
other courses?
ƒ Why not make embedded a point of emphasis in
these other courses?

Jogesh K. Muppala MSRA Theme Workshop 2006 17


Reflections: Some Questions
ƒ Where do we draw the balance between
theory and practice?
ƒ Perhaps Undergraduate courses should place
more emphasis on practical skills!
ƒ Leave the esoteric theory to graduate courses?
ƒ Lack of generic approaches makes it
imperative to put greater emphasis on specific
platforms and solutions in the interim

Jogesh K. Muppala MSRA Theme Workshop 2006 18


Reflections: Some Questions
ƒ Should we use a single platform, or present
different platforms?
ƒ Windows? Embedded Linux? VxWorks?
ƒ How much hardware coverage?
ƒ Emphasis on the software aspects, but cannot do so
divorced from the underlying hardware
ƒ Generic hardware concepts
ƒ Device drivers and interfacing?
ƒ Complete isolation from the underlying hardware is
neither feasible nor desirable

Jogesh K. Muppala MSRA Theme Workshop 2006 19


Student Background
ƒ A good mix of students in their junior and
senior year of undergraduate studies
ƒ Students from both computer engineering
and computer science streams
ƒ Background includes courses on:
ƒ Computer programming including OO
ƒ Computer architecture and organization
ƒ Operating Systems

Jogesh K. Muppala MSRA Theme Workshop 2006 20


Student Feedback from Last Year
ƒ More hands-on labs, experience with dedicated
hardware and embedded development platforms, rather
than the general purpose PC
ƒ Most popular: embedded development, and RTOS
ƒ Least popular: software engineering
ƒ More in-depth coverage of only two or three major RTOS
ƒ More coverage on interfacing, especially with emphasis
on device-driver development
ƒ Overlap with other courses should be minimized
ƒ UML not well appreciated: lack of suitable case-studies

Jogesh K. Muppala MSRA Theme Workshop 2006 21


Conclusions
ƒ Embedded systems software is an interesting
topic deserving a dedicated course
ƒ Our experience is only one point of reference
ƒ More expeirence sharing needed
ƒ Greater consensus on embedded systems and
software curricula:
ƒ Where do different courses fit in the overall picture?
ƒ What are the suitable set of courses?

Jogesh K. Muppala MSRA Theme Workshop 2006 22


Further Information
ƒ J. K. Muppala, Experience with an Embedded
Systems Software Course, ACM SIGBED
Review Special Issue on the First Workshop on
Embedded Systems Education (WESE 2005),
Vol. 2, No. 5, Oct. 2005, pp. 29-33.
ƒ Course website:
http://www.cs.ust.hk/~muppala/comp355/

Jogesh K. Muppala MSRA Theme Workshop 2006 23

Vous aimerez peut-être aussi