Bsc Csit Nepal

Embedded Systems Programming

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:

  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

Reference Books:

  1. Steve Furber “ARM System – on – Chip Architecture”, Second Edition, Pearson Education Limited
  2. Warwick A. Smith “C Programming for Embedded Micricontrollers”