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: Steven Platt, email platt9@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/11 Introduction, embedded system data types. Zoom 2024
Tuesday, 1/16 Images, displays. Zoom 2024 An example C program that reads a PPM format image. Coding challenge.
Thursday, 1/18 introduction to lab computers lab 1 - image display. The code stubs for the X version and Windows version of the lab. See above link for images.
Tuesday, 1/23 Colormaps, image bits Zoom 2024
Thursday, 1/25 Helper programs, test cases Zoom 2024
Tuesday, 1/30 RLE codec Zoom 2024 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/1 LZW codec Zoom 2024 Worksheet to practice LZW decoding. lab 3 - LZW codec. See above link for images.
Tuesday, 2/6 Huffman codec Zoom 2024 lab 4 - Huffman codec. See above link for images.

Partner suggestions solicitied.

Thursday, 2/8 class cancelled Lab 2 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.
Tuesday, 2/13 JPEG codec Zoom 2024
Thursday, 2/15 microcontrollers Zoom 2024
Tuesday, 2/20 digital signal processors (DSP chips) Zoom 2024 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/22 buses Zoom 2024
Tuesday, 2/27 example presentations: ARM processors and SHARC DSPs. Which is good and which is bad? Zoom 2024 Midterm. Topics solicited.
Thursday, 2/29 triangle rendering Zoom 2024 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/5 graphics processors (GPUs) Zoom 2024 The relationship between image pixels, rays and triangles.

The concept of a z-buffer.

Using vertex colors during triangle rendering. Interactive barycentric coordinates demo.

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. Demo of different textures applied to a cube shape.

Lab 4 due. Code must be submitted to canvas by the end of this day. Demo sessions by appointment via zoom.
Thursday, 3/7 JTAG (chip debugging) Zoom 2024 midterm topics due
Tuesday, 3/12 midterm presentations, 2024 Online links to use will be distributed via email/canvas.
Thursday, 3/14 midterm presentations, 2024 Online links to use will be distributed via email/canvas.
Tuesday, 3/19 no class - Spring break
Thursday, 3/21 no class - Spring break
Tuesday, 3/26 the boot process Zoom 2024 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/28 Microsoft anti-trust case Zoom 2024
Tuesday, 4/2 Embedded system development Zoom 2024
Thursday, 4/4 device drivers Zoom 2023 lab 7 - device driver. The manual for the lab. The programming guide for the sound card. The virtual machine with sound to get you started. The sound data to use for the lab. Lab 6 due. No code turned in. Demo sessions by appointment in Riggs 309.
Tuesday, 4/9 real-time O/S Zoom 2024 Scheduling examples. Final. Topics solicited.

A bad report and a good report.

Thursday, 4/11 dynamic scheduling protocols Zoom 2024 RMA protocol examples, excerpt from Briand and Roy's book.
Tuesday, 4/16 rate monotonic analysis Zoom 2024 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/18 example embedded system: bite counter Zoom 2024 Final topics due by 12 Noon so that the schedule can be determined and presented during class.
Tuesday, 4/23 final presentations (2024)
Thursday, 4/25 final presentations (2024) 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