CENG 452
Building Software for Embedded Systems
Design and implementation of software for programmable embedded systems; software tools such as compilers, schedulers, code generators, and system-level design tools; data-flow and control models of computation and software synthesis for uniprocessor and multiprocessor architectures; synchronous/reactive languages and their mathematical properties; implementation of signal processing, communication and control algorithms using variety of technologies such as digital signal processors, microcontrollers, FPGAs, ASICs and real-time operating systems; real-time kernel design; software implemented fault-tolerance techniques.
Course Objectives
To give students the knowledge of latest technologies on software development for various types of embedded systems.
Recommended or Required Reading
Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Tebbs, David. Real time systems: management and design, McGraw-Hill London 1977.
Learning Outcomes:
1. Have knowledge on the requirements of embedded software development
2. Have knowledge on various standards and tools
3. Be able to analyze and design common algorithms used in various embedded systems
4. Be able to use the knowledge of software verification, validation and test on a real project
| Topics |
| Introduction to Embedded Software Design |
|
Compilers, Code Generators, System-Level Design Tools
|
| Data-flow and Control Models of Computation |
|
Software Synthesis for Uniprocessor and Multiprocessor Systems
|
| Synchronous/Reactive Programming Languages |
| Overview of Real-Time Operating Systems |
| Summary (Examination) |
| Real-Time Scheduling Techniques |
|
Various Algorithms in Digital Signal Processing, Communication and Control
|
|
Implementation of Algorithms on Microcontrollers, DSPs, FPGAs and ASICs
|
| Software Development Tools |
| Testing, Design for Reuse |
|
Software-Implemented Fault-Tolerance Techniques
|
| Term Project |
Grading
Midterm: 30%
Presentation: 30%
Final: 40%
- CENG 400
- CENG 411
- CENG 415
- CENG 416
- CENG 418
- CENG 421
- CENG 422
- CENG 424
- CENG 431
- CENG 432
- CENG 433
- CENG 434
- CENG 435
- CENG 436
- CENG 437
- CENG 441
- CENG 442
- CENG 443
- CENG 444
- CENG 451
- CENG 461
- CENG 462
- CENG 463
- CENG 464
- CENG 465
- CENG 467
- CENG 471
- CENG 472
- CENG 473
- CENG 481
- CENG 482
- CENG 483
- CENG 484
- CENG 485
- CENG 486
- CENG 487
- CENG 488
- CENG 491
- CENG 499
