Course Description:
The course covers ARM based embedded system overview – assembly level programming, efficient C programming and embedded OS.
Course Objective:
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 Contents
Unit 1: ARM Embedded System (4 Hrs.)
Introduction to Embedded Systems, Introduction to RISC Design Philosophy, The ARM Design Philosophy, Embedded System Hardware, Embedded System Software
Unit 2: ARM Processor Fundamentals (4 Hrs.)
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
Unit 3: Introduction to ARM Instruction Set (8 Hrs.)
Data Processing Instructions, Branch Instructions, Load – Store instructions, Software Interrupt Instructions, Program Status Register Instructions, Loading Constraints, Conditional Execution
Unit 4: Thumb Instruction Set (8 Hrs.)
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
Unit 5: Efficient C Programming for ARM (8 Hrs.)
Basic Data Types, Expressions, Conditional Statements, Loops, Function Calls, Procedures, Use of Memory, Pointer Aliasing, Bit Field
Unit 6: Writing and Optimizing ARM Assembly Code (8 Hrs.)
Writing Assembly Code, Profiling and Cycle Counting, Instruction Scheduling, Register Allocation, Conditional Execution, Looping Constructs, Bit Manipulation, Efficient Switches, Handling Unaligned Data
Unit 7: Firmware and Embedded OS (5 Hrs.)
Firmware and Bootloader, Fundamental Components of Embedded OS, Embedded Linux, Android OS
Laboratory Works:
Programming in C and Assembly (KEIL and PROTEUS), GPIO Programming (LED, LCD, Keypad, Buzzer)
Text Books:
- 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
Reference Books:
- Steve Furber “ARM System – on – Chip Architecture”, Second Edition, Pearson Education Limited
- Warwick A. Smith “C Programming for Embedded Micricontrollers”