CSCI 224: Assembly Language Programming

Tentative Course Outline

Topics  Assignments  Labs
Getting started    
Intro to microcontrollers
  • RISC vs. CISC arhitecture
  • Microcontrollers vs. Microprocessors
  • Getting started with Keil MicroVision IDE
  • Creating a simple assembly project in Keil

  • Resources and sample programs
   
Programming ARM microcontrollers    
Arithmetic, logic, and loops    
Subroutines and recursion
  • Call and return from subroutines
  • Passing parameters in stack
  • Saving the context, working with local variables
  • Chain subroutine calls
  • Returning values from subroutines

  • Resources and sample programs
   

***** Midterm Exam I *****
Working with peripheral modules    

Interrupt processing    
Working with communication interfaces
  • Serial communication with UART
  • Serial communication with I2C
  • Reading environmental sesors data (temperature, humidity, pressure)
  • Serial communication with SPI
  • Reading accelerometometer and air quality data
  • Resources and sample programs
   

***** Midterm Exam II *****
Working with floating point unit (FPU)  

 
Fundamentals of C programming language    
Microcontroller programming in C
  • Register-based configuration of peripherals
  • Using EMLIB API library
  • Writing mixed C/Assembler codes
  • Passing parameters to assembler functions in C
  • Calling assembler functions from C
  • Calling C functions from assembler
  • Resources and sample programs
   
***** Final Exam *****