Title: An Undergraduate Embedded Systems Design Course Based on a Commercial Embedded Operating System Jim
1An Undergraduate Embedded Systems Design Course
Based on a Commercial Embedded Operating System
Jim Hamblen School of ECEGeorgia
Techhamblen_at_ece.gatech.eduWESE2007 October
4-5, 2007, Salzburg, Austria
2Embedded Systems Design Course
Course Background
- A jr. or sr. level undergraduate class
- Designed to fit into IEEE/ACM/ABET model
curricula - Versions exist for CS, EE, and CmpE majors
- Prior experience of students
- Basic Digital Logic class (gates and registers)
- Programming classes (some C, C, or Java likely)
- Only some have had a prior OS and Architecture
class - At Georgia Tech earlier classes cover
microcontrollers FPGAs with processor cores - At Georgia Tech, the course time is allocated to
around 1/3 time each on hardware topics, software
topics, and a final team-based design project
3Curriculum Outline
- Introduction to Embedded Systems
- Embedded Systems Hardware and Software
- Processors, Memory, Busses, I/O ports, Standard
I/O interfaces and basics of I/O software,
Interrupts, DMA, USB, Networking, eBox hardware
overview - RTOS Architecture Features
- OS Internal Architecture and Features, Basic APIs
- Building a customized Kernel
- Tutorials on OS build process, C/C and C
development, and execution on eBox target
hardware - Application Development using an OS
- C/C, C Debug tools, common APIs, basic code
examples - I/O Device Driver Development
- Stream Drivers Serial port example driver code
for eBox - Advanced OS Topics
- BSP Development, SDK, Bootloader, Hardware Debug
Tools, Testing, Safe Coding Rules, IP issues
4What kinds of embedded systems are currently
being designed?
- Most new designs are using 32-bit processors
- Most new designs with an OS use a commercial
off-the-shelf OS - Based on data from EETimes and Embedded Systems
Design 2005-7 Annual Embedded Market Surveys - Would like the course to reflect current/future
industrial trends
5Major Goals Features of Laboratory Projects
Embedded Systems Design Course
- Hardware Use a low-cost SoC target board for
laboratory projects eBox 2300 - Software Use a commercial Real-Time OS (RTOS)
and C/C/C for applications Windows CE 6.0 - Target board priced near textbook cost, All
software is free - Make course materials labs available free to
schools - Textbook with tutorials (300 pages .pdf and
.doc files) - Instructor PowerPoint Slides (400)
- Example OS Builds and C/C/C Project Code
6Hardware SoC Development Board
- ICOP Technology eBox 2300 MSJK
- Hardware cost near student textbook cost (US
145 each in qty 10 for schools with power
supply, cables, and CE preinstalled on flash) - No Cost Software VS 2005, CE 6.0, eBox I/O
drivers in Board Support Package (BSP)
7 View Inside the eBox 2300
Audio CODEC
128MB SDRAM
256MB FLASH
BIOS ROM
Ethernet Controller
Vortex86 SoC
PS/2, USB, VGA, serial, Network connectors
Bottom of PCB Mini PCI CF slot
8RTOS Windows Embedded CE 6.0
- Perhaps the most widely used commercial RTOS for
embedded devices - Core technology used in Windows Mobile SmartPhone
and PocketPC devices and Windows Automotive - Not a port of Desktop Windows - Designed from
scratch for embedded devices - Initial version of CE developed in mid 1990s
- Includes C/C/C compilers and debuggers
- C is very similar to Java
- Supports ARM, MIPS, SHx, and X86 processors
- MMU is used for Virtual Memory
- Considered a hard real-time OS
9Real-Time Performance of CE 6.0
Hard Real-Time
Soft Real-Time
Windows XP
Hard Real-Time
Windows CE
0
1,000 µs
5,000 µs
10,000 µs
100 µs
Cycle Variation or Jitter (µs)
CE Real-Time Performance Measurements showing
Response Cycle Time. Soft and Hard Real-Time
categories are based on OMAC study and OS times
are without any third party real-time extensions
to the OS.
10CEs Platform builder and development tools run
in the Visual Studio 2005 IDE
11Students can have an eBox 2300 running their own
custom built CE 6.0 RTOS kernel and a hello
world application in under an hour following the
tutorials!
eBox 2300 running CE 6.0 RTOS
12Adding External I/O using USB
- Phidgets USB Devices ( www.phidgets.com )
- Supports Servos, Digital, Analog I/O
- Numerous plug-in sensor modules available
- Free Driver shared source code projects for CE
6.0
13Several Phidgets mounted on a plastic case for
CE/eBox student lab projects. Includes an LCD,
LEDs, switches, ADC with 8 analog sensors, and 2
R/C servos on a pan tilt mount with an IR
distance sensor.
14 Serial I/O options for eBox
- Cypress PSoC Evaluation Kit (CY3210)
- Mixed-Signal Microcontroller with digital and
analog I/Os. - Low Cost (35 academic pricing) but need to
develop Firmware for serial commands
(www.cypress.com/CUAP) - Includes USB Programmer
- Serial Interface and Small Protoboard on PCB
- USB version available (60) but no CE drivers yet
- Free graphical software tool, C compiler, and
assembler
15Student Design Projects using the eBox 2300 and
CE 6.0
- Examples of Several Team-Based Undergraduate
Student Design Projects - Projects completed during last 6 weeks of
Embedded System Class at Georgia Tech - With an RTOS available, most projects now include
an interesting mix of multithreading, GUI, and
networking features - All student projects were successful!
16 This project used an eBox, a Phidgets LCD,
and a Cypress PSoC board setup to receive TV IR
remote signals. It displays live RSS news feeds
on the LCD module.
17(No Transcript)
18(No Transcript)
19(No Transcript)
20(No Transcript)
21(No Transcript)
22Students mounted an eBox on this R/C plane along
with a GPS receiver and a small battery. They
recorded flight data and displayed the data
using Google earth.
23 Students used an eBox, this Cell Phone Modem,
and several Phidgets sensors to build a Remote
Weather Station. On request, it sends SMS text
messages that contain weather info.
24New Project Developments this Fall
- Free BSP for a new target board
- New low-cost robot base
- Drivers now available for a web camera
25USB WebCam
- USB webcam driver for Windows CE
- Supports Logitech QuickCam Pro 5000 (65)
- Free Driver source code shared project for CE
- (http//msdn.microsoft.com/embedded/community/comm
unity/CommunityProjects/)
26Gumstix Connex Embedded Computer Board(size of a
stick of gum www.gumstix.com)Microprocessor
Marvel 400Mhz XscaleOS DrumStix community
project developing a BSP for Windows CEGreat
low-power CE target board for student projects.
New Target board BSP
27iCreate Robot Base for the eBox
- Low-cost robot base for projects (www.irobot.com
) - A roomba without the vacuum parts
- Used for a Sumobot contest at a recent
professional conference (MEDC 2007)
28Imagine Cup Student Design Contest
- Embedded Development Invitational
- Teams of 2-4 students develop a project
- eBox hardware and CE 6.0 used in 2007 2008?
- Project reports from 2007 are available
http//imaginecup.com/competition/Finalists.aspx - Top 200 Student teams provided a design kit
- Next Finals in Paris in July
- More info at www.imaginecup.com
29Questions/Comments
- Textbook and Instructor Slides are available at
- http//www.academicresourcecenter.net/curriculum/
- search for Introduction to Embedded Systems