EECS388 Embedded Systems Fall 2022 |
Announcements
Contact Information
Course Description
Lecture Notes
Homework and Quizzes
Exams
Labs
Previous offerings
- 08/18/2022 Birth of the EECS388 web page for Fall 2022.
- 08/23/2022 Lecture note 1 is uploaded.
- 08/25/2022 Lecture notes 2 and 3 are uploaded.
- 08/25/2022 Midterm date is set to October 6th.
- 08/30/2022 OH times of GTAs announced.
- 09/16/2022 Homework 1 released. Hard deadline is on Sep 29 before the class.
- 09/29/2022 Homework 1 solution is uploaded.
- 10/06/2022 Midterm Solution is uploaded.
- 10/25/2022 Quiz 13 Solution is uploaded.
- 11/16/2022 Homework 2 released. Hard deadline is on Dec 9 11:59PM.
- 12/08/2022 Homework 3 (Optional) released. Video recording of the review class is uploaded.
- 12/10/2022 Homework 2 solution is uploaded.
- 12/10/2022 Homework 3 solution is uploaded.
Instructor
Prof. Mohammad Alian
Office: 2022EH
Office Hours: Tu,Th 12:15 - 1:00 PM
Email: alian@ku.edu
Graduate Teaching Assistants (GTAs)
SM Ishraq-Ul Islam
Office: EATN 3002
Lab Time: Monday 8:00 - 9:50AM, Friday 8:00 - 9:50PM
Office Hours: Tuesday 3:00 PM - 4:00 PM, Thursday 3:00 PM - 4:00 PM
Email: ishraq@ku.edu
Soma Pal
Office: EATN 3002
Lab Time: Monday 2:00 - 3:50PM, Thursday 8:00 - 9:50AM
Office Hours: Friday 1:00 PM - 3:00 PM
Email: soma_pg2021@ku.edu
Arin Dutta
Office: EATN 3002
Lab Time: Wednesday 8:00 - 9:50AM, Wednesday 2:00 - 3:50PM
Office Hours: Thursday 10:00 AM - 12:00 PM
Email: arindutta60@ku.edu
Mojahidul Ahsan
Office: EATN 3002
Lab Time: Tuesday 8:00 - 9:50AM, Tuesday 1:00 - 2:50PM
Office Hours: Tuesday 10:00 AM - 12:00 PM
Email: smmojahidul.ahsan@ku.edu
Supplimental Instructors (SIs) and Graders
Chauncey Hester
Office: EATN 3002
Office Hours: Friday 10:00 AM - 12:00 PM
Email: chaunceydhesterjr@ku.edu
Christopher Gustanto
Office: EATN 3002
Office Hours: Thursdays 1:00 PM - 3:00 PM
Email: cgustanto@ku.edu
Naga Chandrika Indlamuri
Email: cindlamuri@ku.edu
Lecture time: Tu, Th 11:00 AM - 12:15 PM
Class: EATN 2
An embedded system is a smart system with special-purpose computation capabilities. You can see examples of embedded systems every day in smart appliances, cars, medical devices, etc. In this course, you are going to learn about the hardware and software architecture of embedded systems. At the end of the course, you will learn how to program a microprocessor to interact with the physical world through sensors and actuators. This course is divided into two parts: lectures and labs. Lectures will teach you the theory about embedded systems, and in the labs you will implement what you learned during the lectures. Here is a (tentative) list of the topics that we will cover in the lectures:
- Introduction to embedded systems: what is an embedded system and the differences between embedded systems and general-purpose computers.
- Embedded software echo-system: Introduction to tools and environment for developing embedded software (build toolchain, GNU make, IDEs, git).
- C programming refresher: a brief introduction to C.
- RV32 ISA: a brief introduction to RISC-V assembly language.
- Microprocessor's memory address space.
- I/O (sensors and actuators): how to interact with the physical world using sensors and actuators.
- Interrupt: Difference between interrupt and polling, how to use them, and the implications of using them.
- Concurrency and threads: how to utilize the available parallelism in the hardware and develop concurrent embedded software.
- Scheduling: Real-time scheduling concepts in Linux.
- Networking: Ethernet and TCP/IP networking software stack.
- CPU and memory architecture: Learn how instructions get executed in the hardware. Studying the micro-architecture of a basic RISC-V, single-cycle processor.
Refer to the course syllabus for additional details
We use Canvas for posting grades and announcements. We use Microsoft Teams for discussion. The lecture notes and course materials will be posted to the course website.
You do not need to study any textbook for this course. However, here is a list of textbooks that you may find helpful to understand the topics better. Please consult with me to give you exact pointers for which chapters in these textbooks are relevant to which topic.
(PP) "Introduction to Computing Systems: From Bits and Gates to C and Beyond" by Y. Patt, S. Patel (any edition)
(MNN) "AVR Microcontroller and Embedded Systems: Using Assembly and C" by M. Mazidi, Sa. Naimi, Se. Naimi (any edition)
(PH) "Computer Organization and Design, a Hardware/Software Interface" by D. Patterson, J. Hennessy (any edition)
(AS) Introduction to Embedded Systems - A Cyber-Physical Systems Approach, by Edward Ashford Lee and Sanjit Arunkumar Seshia.
- Lecture 01: Introduction [PPT]
- Lecture 02: Embedded Software Development [PPT]
- Lecture 03: C Refresher [PPT]
- Lecture 04: Computer Organization Intro [PPT]
- Lecture 05: LC3 [PPT]
- Lecture 06: LC3 Datapath [PPT]
- Lecture 07: Assembly [PPT]
- Lecture 08: Assembly Instructions [PPT]
- Lecture 09: OS[PPT]
- Lecture 10: Subroutine[PPT]
- Lecture 11: I/O [PPT]
- Lecture 12: System Call[PPT]
- Lecture 13: Interrupt [PPT]
- Lecture 14: IO Interfaces [PPT]
- Lecture 15: DAC/ADC [PPT]
- Bonus Lecture: Bit Manipulation[PPT]
- Lecture 16: Motors [PPT]
- Lecture 17: Intor to Realtime Scheduling [PPT]
- Lecture 18: Realtime Scheduling [PPT]
- Lecture 19: Schedulability [PPT]
- Lecture 20: Mutual Exclusion [PPT]
- Lecture 21: Review [PDF][VIDEO]
HW 1: [PDF], Solution[pdf], [Due Sep 29 at 10:59 AM]
In-class Quiz #13 [PPT]
HW 2: [pdf], Solution[pdf] [Due Dec 9 at 11:59 PM on Canvas]
HW 3 Optional: [pdf], Solution[pdf] [No Deadline - Optional]
Midterm exam is scheduled for Thursday October 6th from 11:00AM - 12:30PM. The midterm covers TBD.
Final exam is on Tuesday Dec 13th from 10:30AM - 1:00PM. The exam will cover all the topics discussed during the semester.
Midterm solution[PDF]
Each student needs to attend one lab section every week. The lab instructions will be uploaded to Canvas before each week.
Final Project
TBD
Fall 2020
Fall 2021