ECE 4680L/6680L Embedded Computing


This course teaches the principles of using computing in the larger context of a system. The student is expected to enter this class with an understanding of computer architecture, assembler, and proficiency programming in the C (or related) language. Emphasis is given to multimedia data (images, audio, graphics) as examples of processing found in an embedded system. In concurrent lab work, each student will design and implement many of the ideas that are found in a digital video camera.

Topics include data in embedded systems, displays, codecs, processor and bus "flavors", the boot process, real-time scheduling and device drivers.

Zoom link for live class. Instructor: Adam Hoover

Teaching assistant: John Lawler, email lawler6@g.clemson.edu

Syllabus


Information on the lab, computers and software


Images used in several of the labs.
Here is the tentative outline for the semester. Dates and topics are subject to change.

Day Lecture topics (instructor notes) Extra references Lab assigned Lab due
Thursday, 1/13 Introduction, embedded system data types.
Tuesday, 1/18 Images, displays. Zoom 2022 An example C program that reads a PPM format image. Coding challenge.
Thursday, 1/20 introduction to lab computers lab 1 - image display. remote learning version. The code stubs for the X version and Windows version of the lab. See above link for images.
Tuesday, 1/25 Colormaps, image bits Zoom 2022
Thursday, 1/27 Helper programs, test cases Zoom 2022
Tuesday, 2/1 RLE codec Zoom 2022 lab 2 - RLE codec. See above link for images. Lab 1 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment in Riggs 309.
Thursday, 2/3 LZW codec Zoom 2022 Worksheet to practice LZW decoding. lab 3 - LZW codec. See above link for images.
Tuesday, 2/8 Huffman codec Zoom lab 4 - Huffman codec. See above link for images.

Partner suggestions solicitied.

Thursday, 2/10 JPEG codec Zoom 2022 Lab 2 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.
Tuesday, 2/15 microcontrollers Zoom 2022
Thursday, 2/17 digital signal processors (DSP chips) Zoom 2022
Tuesday, 2/22 buses Zoom 2022 Partner teams determined. Lab 3 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.
Thursday, 2/24 triangle rendering Zoom 2022 See John Burkardt's site for a large selection of PLY files. Examples solving a plane-ray intersection. An explanation of using the cross product test to determine if a point is inside a triangle. Help on rotation matrices and how to use them. lab 5 - triangle rendering. Some PLY files available here.
Tuesday, 3/1 graphics processors (GPUs) Zoom 2022 The relationship between image pixels, rays and triangles.

The concept of a z-buffer.

Using vertex colors during triangle rendering.

The effect of indirect lighting.

A 2D example of surface normal interpolation. A comparison of color vs surface normal interpolation.

How textures are applied to triangles.

Thursday, 3/3 example presentations: ARM processors and SHARC DSPs. Which is good and which is bad? Zoom 2022 Midterm. Topics solicited.
Tuesday, 3/8 JTAG (chip debugging) Zoom 2022 Lab 4 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.
Thursday, 3/10 Intellectual Property midterm topics due
Tuesday, 3/15 midterm presentations Online links to use will be distributed via email/canvas.
Thursday, 3/17 midterm presentations Online links to use will be distributed via email/canvas.
Tuesday, 3/22 no class - Spring break
Thursday, 3/24 no class - Spring break
Tuesday, 3/29 the boot process Zoom 2022 A wiki list of Linux distributions. lab 6 - booting and the kernel. The manual for the lab. The virtual machine to get you started. Lab 5 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.

Thursday, 3/31 Microsoft anti-trust case Zoom
Tuesday, 4/5 Embedded system development Zoom 2022
Thursday, 4/7 device drivers Zoom 2022 lab 7 - device driver. The manual for the lab. The programming guide for the sound card. The sound data to use for the lab. Lab 6 due. No code turned in. Demo sessions by appointment in Riggs 309.
Tuesday, 4/12 real-time O/S Zoom 2022 Scheduling examples. Final. Topics solicited.

A bad report and a good report.

Thursday, 4/14 dynamic scheduling protocols Zoom 2022 RMA protocol examples, excerpt from Briand and Roy's book.
Tuesday, 4/19 rate monotonic analysis Zoom What happened on Mars?, a great example of a scheduling problem.

Video simulation of Mars pathfinder landing.

lab 8 - rate monotonic analysis. Lab 7 due. No code turned in. Demo sessions by appointment in Riggs 309.
Thursday, 4/21 example embedded system: bite counter Zoom 2022 Final topics due by 12 Noon so that the schedule can be determined and presented during class.
Tuesday, 4/26 final presentations
Thursday, 4/28 final presentations Lab 8 due. Code and report must be posted to canvas by the end of this day.

Final presentation report must be posted to canvas by the end of this day.


ECE 4680L/6680L Page / Clemson / ahoover@clemson.edu