UCSCBaskin School of Engineering  
General Information Events, News & Organizations Degrees & Departments Research Classes Admissions & Advising People & Jobs Administration
CMPE 117 - Spring 2003

Embedded Software

Instructor: Luca de Alfaro

  • 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
  • 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


General info · News · Events · Degree Programs · Research · Classes · Admissions · Advising · People · Jobs · Administration
SOE Webmail · SOE SSH · SOE Wiki · Search · Sitemap · Contact us · Driving directions · Privacy · UCSC
© Baskin School of Engineering, University of California, Santa Cruz
1156 High St., Santa Cruz, CA 95064 · (831) 459-2158 · webmaster@soe.ucsc.edu