CP7016 EMBEDDED SOFTWARE DEVELOPMENT SYLLABUS
M.E. COMPUTER SCIENCE AND ENGINEERING
SEMESTER II
OBJECTIVES:
To understand processors and their instruction sets for embedded systems
To understand hardware platform for embedded systems
To design and analyze programs for embedded systems
To design multi-tasking embedded systems with RTOS
To understand overall embedded systems development lifecycle
To understand distributed and multi-processor embedded systems
UNIT I PROCESSORS AND INSTRUCTION SETS
Introduction to embedded computing – overview of embedded system design process – instruction sets of processors: ARM, PIC, TI C55x, TI C64x – programming I/O – modes and exceptions – coprocessors – memory system – CPU performance – CPU power consumption
UNIT II EMBEDDED COMPUTING PLATFORM
Basic computing platforms – CPU Bus – memory devices and systems – choosing a platform – development environments – debugging – consumer electronics architecture – platform-level performance analysis – design example: Audio Player
UNIT III PROGRAM DESIGN AND ANALYSIS
Components for embedded programs – models of programs – Assembly, linking, and loading – compiler optimizations – program-level performance analysis – performance optimization – program-level energy optimization – optimizing program size – program validation and testing – design example: Digital Still Camera
UNIT IV PROCESSES AND OPERATING SYSTEMS
Multiples tasks and multiple processes – multirate systems – pre-emptive RTOS – priority-based scheduling – inter-process communication – evaluating OS performance – processes and power optimization – Case study: Real-time and embedded Linux – design example: Telephone answering machine
UNIT V SYSTEM DESIGN, NETWORKS, AND MULTIPROCESSORS
System design methodologies – requirements analysis – specifications – architecture design – quality assurance – distributed embedded systems – shared-memory multiprocessors – design example: Video accelerator
TOTAL : 45 PERIODS
OUTCOMES:
Upon Completion of the course, the students will be able to
Develop assembley code for processors such as ARM, PIC Microcontroller, TI C55x, TI C64x, etc.
Choose appropriate hardware platform for a given application
Perform platform-level performance analysis
Design, develop, and debug embedded programs optimized for size or performance
Develop embedded applications using an RTOS
Perform OS-level performance analysis
Employ best practices in embedded software engineering
Develop distributed embedded systems and systems with shared-memory concurrency
REFERENCES:
1. Marilyn Wolf, “Computers as Components: Principles of Embedded Computing Systems
Design”, Third Edition, Morgan Kaufmann, 2012.
2. Christopher Hallinan, “Embedded Linux Primer: A Practical Real-World Approach”, Second Edition, Prentice Hall, 2010.
3. Karim Yaghmour et al., “Building Embedded Linux Systems”, O’Reilly, 2008.
4. Arnold S. Berger, “Embedded Systems Design: An Introduction to Processes, Tools, and
Techniques”, CMP Books, 2001.
5. David E. Simon, “An embedded Software Primer”, Addison-Wesley, 1999.
No comments:
Post a Comment