TABFlux
HomeCoursesUniversitiesProgramsForum
Contact Us

© 2026 TABFlux. All rights reserved. Built for students, by students.

ForumPrivacy PolicyTerms of ServiceContact UsContributors

Embedded System

Embedded Systems focus on the design and development of dedicated computing systems built into hardware to perform specific, real-time functions. Unlike general-purpose computers, embedded systems are optimized for efficiency, reliability, and low power consumption, making them essential in modern electronic products. Learners gain hands-on experience with microcontrollers and microprocessors, embedded C/C++, firmware development, real-time operating systems (RTOS), hardware interfacing, and communication protocols.

Select University

TUFWU

Select Program

BSc. CSIT

TabFlux . Embedded System Programming . FWU . BSc. CSIT

Embedded System Programming

0%

Course Title: Embedded System Programming

Course No: CSIT.425.3

Nature of the Course: Theory + Lab

Semester: 8

Full Marks: 60 + 20 + 20

Pass Marks: 24 + 10 + 10

Credit Hours: 3

Course Description

Course Objectives

Course Contents

1. Introduction
5 hrs
1.1. Embedded System Basics
  • What is Embedded System (ES)?
  • Real-time Systems
  • Components of ES
  • Requirements that Affect Design Choices
  • Embedded Design Examples (Digital Watch, Video Game Player)
1.2. Embedded Programming Languages
  • Embedded Software Developer
  • C language for Embedded Programming
  • Other Embedded Languages
2. Embedded Hardware & Software
12 hrs
2.1. Hardware Basics
  • Schematic Fundamentals
  • Memory Map
  • How to Communicate?
  • Processor
  • PXA255 XScale Processor
  • External Peripherals
  • Hardware Initialization
2.2. Embedded Programs
  • Hello World Program
  • LED Blinking Program
  • Role of Infinite Loop
2.3. Compiling, Linking and Locating
  • Build process
  • Compiling
  • Linking
  • Startup Code
  • Locating
  • Building the LED Blinking Program (compile, link and locate)
  • Format the Output File
  • Makefiles
2.4. Downloading and Debugging
  • Downloading LED Blinking Program
  • Debug Monitors (Downloading and Running Programs with ReBoot)
  • Remote Debuggers
  • Emulators
  • Other Useful Tools
3. Memory
8 hrs
3.1. Memory Types and Issues
  • Types of Memory
  • Types of RAM and ROM
  • Hybrid Types
  • DMA
  • Endian Issues
  • Endianness in Devices and Networking
3.2. Memory Testing
  • Common Memory Problems
  • Electrical Wiring Problems
  • Missing Memory Chips
  • Improperly Inserted Chips
  • Data Bus Test
  • Address Bus Test
  • Device Test
3.3. Flash Memory
  • Validating memory Content (Checksum & CRC)
  • Using Flash Memory
  • Working with Flash Memory
  • Flash Drivers
4. Peripherals and Interrupt
10 hrs
4.1. Registers and Bit Manipulation
  • Control and Status Registers
  • Testing Bits
  • Setting Bits
  • Clearing Bits
  • Toggling and Shifting Bits
  • Bitmasks
  • Bit fields
  • Struct Overlays
4.2. Device Drivers
  • Device Driver Philosophy
  • Serial Device Driver: Register Interface, State Variables, Initialization Routine, Device Driver API
  • Testing Serial Device Driver
  • Extending Functionality
  • Device Driver Design
4.3. Interrupts and Timers
  • Interrupts Overview
  • Priority, Levels and Edges
  • Enabling and Disabling
  • Interrupt Map
  • Interrupt Service Routine
  • Shared Data and Race Conditions
  • Improved LED Blinking Program
  • Working of Timers
5. Operating Systems II
10 hrs
5.1. RTOS Concepts
  • Purpose
  • Scheduler
  • Real-time Scheduling
  • Scheduling Points
  • Locking and Unlocking
  • Task States
  • Task Context
  • Task Priorities
  • Task Mechanics
  • Task Synchronization
5.2. RTOS Features and Selection
  • Message Passing
  • Other Functionality
  • Interrupt Handling
  • RTOS Characteristics
  • When to use RTOS?
  • RTOS Selection Process
5.3. eCos and Embedded Linux Examples
  • eCos Introduction
  • eCos Task Mechanics
  • eCos Task Synchronization
  • eCos Message Passing
  • eCos Interrupt handling
  • Embedded Linux Introduction
  • Embedded Linux Accessing Hardware
  • Embedded Linux Task Mechanics
  • Embedded Linux Task Synchronization
  • Embedded Linux Message Passing
  • Embedded Linux Interrupt handling

Laboratory Works

  1. 1.Embedded Programming
  2. 2.Embedded OS Features

Text Books

  1. 1.Programming Embedded Systems, 2nd Edition, Anthony Massa, Michael Barr, O'Reilly Media, Inc, 2006

Reference Books

  1. 1.Computers as Components: Principles of Embedded Computing System Design, W. Wolf, Morgan Kaufmann, Second Edition, 2008.
  2. 2.Introduction to Embedded Systems, A Cyber-Physical Systems Approach, 2011
  3. 3.Introduction to Embedded Systems, David Russell, 2010.

Notes:

Source:

Embedded Systems are everywhere. In this course you will learn the basics of designing, interfacing, configuring, and programming embedded systems.
How building and loading programs differ from desktop or server computers. Basic debugging techniques--a critical skill when working with minimally endowed embedded systems. Handling different types of memory. Interrupts, and the monitoring and control of on-chip and external peripherals. Determining whether you have real-time requirements. Task synchronization with real-time operating systems and embedded Linux.
Students should practice small scale Embedded programs that uses processor architecture, memory system, peripherals and interrupt. Besides this student should use Embedded OS features discussed in class.
This syllabus follows the official CSIT curriculum of Far Western University. In case of any doubt or revision, the university's published syllabus shall be considered authoritative. https://cdc.fwu.edu.np/faculties.html