Bachelors Level/Fourth Year/Eighth Semester/Science csit/eighth semester/embedded systems programming/syllabus

B.Sc Computer Science and Information Technology

Institute of Science and Technology, TU

Nature of the course: (Theory+Lab)

F.M: 60+20+20 P.M: 24+8+8

Credit Hrs: 3Hrs

Embedded Systems Programming [CSC487]
Course Objective
i.
The main objective of this course is to introduce the underlying principle of embedded system programming in assembly language and C language for ARM based embedded processor.
Course Description

The course covers ARM based embedded system overview – assembly level programming, efficient C programming and embedded OS.

S1:ARM Embedded System[4]
1
Introduction to Embedded Systems, Introduction to RISC Design Philosophy, The ARM Design Philosophy, Embedded System Hardware, Embedded System Software
S2:ARM Processor Fundamentals[4]
1
The Acron RISC Machine, The ARM Programmer’s Model, ARM Development Tools, Registers, Current Program Status Register, Pipeline, Exceptions, Interrupts, Vector Table, ARM Processor Families
S3:Introduction to ARM Instruction Set[8]
1
Data Processing Instructions, Branch Instructions, Load – Store instructions, Software Interrupt Instructions, Program Status Register Instructions, Loading Constraints, Conditional Execution
S4:Thumb Instruction Set[8]
1
The Thumb bit in the CPSR, The Thumb Programmer’s Model, Thumb Branch Instructions, Thumb Software Interrupt Instructions, Thumb Data Processing Instructions, Thumb Single Register Data Transfer Instructions, Thumb Multiple Register Data Transfer Instructions, Thumb Breakdown Instruction, Thumb Implementation, Thumb Application
S5:Efficient C Programming for ARM[8]
1
Basic Data Types, Expressions, Conditional Statements, Loops, Function Calls, Procedures, Use of Memory, Pointer Aliasing, Bit Field
S6:Writing and Optimizing ARM Assembly Code[8]
1
Writing Assembly Code, Profiling and Cycle Counting, Instruction Scheduling, Register Allocation, Conditional Execution, Looping Constructs, Bit Manipulation, Efficient Switches, Handling Unaligned Data
S7:Firmware and Embedded OS[5]
1
Firmware and Bootloader, Fundamental Components of Embedded OS, Embedded Linux, Android OS
References
1.
Andrew N. Sloss, Dominic Symes, Chris Wright “ARM System Developer’s Guide: Designing and Optimizing System Software”, Latest Edition, Morgan Kaufmann Publisher, An imprint of Elsevier
2.
Steve Furber “ARM System – on – Chip Architecture”, Second Edition, Pearson Education Limited
3.
Warwick A. Smith “C Programming for Embedded Micricontrollers”
Labrotary Work
Programming in C and Assembly (KEIL and PROTEUS), GPIO Programming (LED, LCD, Keypad, Buzzer)