Embedded Software
- Location: 4:00-5:45, TTh, Social Sciences 2, Room 167.
- Lab location: BE 140.
- Prerequisite: CMPS 111, Operating Systems.
- Office Hours: Tuesdays, 11-12, and Thursdays, 11-12.
- Newsgroup: ucsc.classes.cmpe117
What is Embedded Software?
Embedded software is the software that is included in products, rather
than running on desktop PCs or workstations.
The applications of embedded software range from small, stand-alone
systems such as those found in appliances, to the real-time, networked
systems responsible for the control and performance of cars, aircraft,
and production plants.
Over 99% of the CPUs being produced are used in embedded systems,
and embedded software determines an increasing share of the
functionality, appeal, and complexity of a product, from cellphones,
to automotive engine control systems.
Why is embedded software different from
usual "desktop" software?
What is This Course About?
- Program Lego Mindstorm Robots in a variety of languages!
Make them roam, explore, build ad-hoc communication links, and
perform a variety of tasks.
- Learn how to write concurrent, real-time code, and how to
ensure it is correctly scheduled.
- Learn how different real-time operating systems support
embedded programming.
- Experiment with high-level languages for embedded systems,
developed to make real-time distributed control easy!
These languages are based on a completely different set of ideas
from the programming languages you are used to.
- Learn what are the main challenges in developing embedded
software for complex systems such as cars, cellphones, and
satellites, and learn techniques to overcome them.
Textbook
Giorgio C. Buttazzo, Hard Real-Time Computing Systems: Predictable
Scheduling Algorithms & Applications.
Kluwer Academic Publishers, 1997.
Announcements
- Professor Brandt will give the lecture on Tuesday May 13.
Usual place and time: 4:00 Soc Sci 2, Rm 167.
- The lecture on Thursday May 15 is cancelled.
- New homework assigned:
- Esterel coding assignment due on Monday May 19
- Homework due on Tuesday May 20
- The second midterm will take place on Thursday May 22. Topic: Esterel.
The homework due on May 20 contains questions similar to those
that will be given in the midterm.
- I am away in the week of May 12-16, but I should be able to read email
once a day.
Homeworks
Policy
- Turn in pencil-and-paper assignments in class, and coding
assignments by emailing them as attachments to me: luca@soe.ucsc.edu
Assignments
- Due Thursday April 10
- Reading:
- Coding: Code a (rudimentary) version of a rover that
seeks the light. The rover should try to go to the
brightest-lit area in a room, and should be able to recover
from bumps. You can look at sample code:
- Assignment 2, due Tuesday April 22.
Postscript, pdf.
Sample Solutions.
- Assignment 3, due Tuesday April 29.
Postscript, pdf.
- Assignment 4,
due Monday May 19 in the lab:
You must write Esterel code for the light-seeking robot.
The assignment will be graded for functionality (as demo-ed in the
lab) and style.
Please email me the code as an attachment.
UPDATED
- Assignment 5, due Tuesday May 20.
Postscript, pdf.
UPDATED
Midterms and Final
- Midterm 1, April 29 (Tuesday), in class.
- Midterm 2, May 22 (Thursday), in class.
- Final, June 12, 8-11am, in class.
New Lectures
- Aperiodic scheduling.
- Periodic scheduling.
Old Lectures
These are last year's lectures, and they will be updated as the course
progresses. I am currently having trouble obtaining postscript from
Powerpoint, so for the time being look at these lectures. Sorry!
Reading and Resources
Additional Reading
- Hermann Kopetz, Real-Time Systems: Design Principles for
Distributed Embedded Applications.
Kluwer Academic Publishers, 1997.
Lego Mindstorms
C Code Samples
Esterel
Ad hoc network protocol
|