Catalog Description
Introduction to Embedded Systems. Microcontroller Hardware. ARM Processor. CPU Programming. Memory and I/O. Interfacing: Parallel and Serial Communication. A/D and D/A conversion Embedded system design methodologies. Specifications. Designing robust software for embedded systems. RTOS features.
Prerequisite: COE 301 and COE 203
Instructor
Dr. Ahmad Khayyat.
Office: 22/150.
Phone: 8234.
Email:
akhayyat@kfupm.edu.sa.
Website: http://www.ccse.kfupm.edu.sa/~akhayyat/
Office Hours
Sunday, Tuesday, Thursday 2 PM – 3 PM.
Course Website
https://blackboard.kfupm.edu.sa/
Textbook
Wayne Wolf, “Computers as Components: Principles of Embedded Computing System Design”, Third Edition, Morgan Kaufmann, 2012.
Grading Policy
Assignments | 10% | |
Quizzes | 10% | |
Exam I | 15% | Monday October 20, 2014 |
Exam II | 15% | Monday December 1, 2014 |
Final Exam | 25% | To be announced |
Lab and project | 25% |
- Attendance is required. For each 3 missed classes, a penalty of 0.5 will be deducted. The tench unexcused absence results in a DN grade.
- Late assignments penalty: 20% per day.
- Cheating in one assignment or quiz will result in a zero in all assignments or quizzes. Any identical solutions are considered cheating.
- No makeup will be made for missing quizzes or exams.
Course Topics
Introduction to Embedded Systems
Introduction to embedded systems; requirements analysis; specifications; design methodologies overview.
Microcontroller Organization
Computer architectures, ARM organization, ARM instruction set, data operations, control flow, PIC, TI DSPs.
CPUs
I/O and memory mapping, addressing modes, interrupts and traps, caches, co-processors, memory management, virtual memory, address translation, CPU performance.
Embedded Platforms
Hardware and software components of embedded platforms, bus protocols, DMA, system bus configurations, the AMBA and AHB buses, memory devices: RAM, ROM, SDRAM, flash, basic I/O Interfaces, platform-level performance.
Embedded Programming Techniques
Introduction to the C language, state machines, circular buffers, queues, models of programs, the compilation process, program performance and optimization, power analysis, program size analysis, validation and testing.
Processes and Operating Systems
Tasks and processes, process timing requirements, real-time operating systems, preemptive execution, context switching, scheduling processes, priority scheduling, inter-process communication, shared-memory systems, message passing.
Networks and Multiprocessors
Multiprocessor systems, distributed embedded systems, CAN bus, I2C bus, multiprocessor system-on-chip (MPSoC), accelerators.
Lab Topics
- Development platform: hardware and software
- General purpose input/output (GPIO)
- Interrupts
- Serial communication
- Analog-to-digital and digital-to-analog conversion
- Real-time clock