Microprocessors course (In Persian)


Back to Home
Lecture Notes Taken by Students :
  1. Student 1 Part 1 : Download
  2. Student 1 Part 2: Download
  3. Student 1 Part 3: Download
Lectures & Homework:
  1. Slides for the first 10 sessions of the class are here : Download
  2. Slides related to floating point values are here: Download
  3. Slides related to architecture of C30 DSP and basic concepts of DSPs : Download
  4. Slides related to Memory Management Unit: Download
  5. Slides related to cache memory and basic timings of SRAM and DRAM memories: Download
  6. Slides related to ARM CPU history and an introduction to its architecture and families: Download
  7. Slides related to ARM CPU instruction set and Assembly language programming for ARM: Download
  8. Slides related to Advanced Interrupt Controller module on ATMEL AT91SAM7X microcontrollers: Download
Sample Problems :
  1. Sample problems for mid-term exam part 1: Download
  2. Sample problems for mid-term exam part 2: Download
  3. Exercises for ARM Assembly Language Programming part 1: Download
  4. Exercises for ARM C programming part 1: Download
  5. part of solution to above homework: Download
Videos
Session Description Download
1 Intro to CPU ---
2 4004 CPU DOWNLOAD (Save Link As)
3 TMS1000 CPU DOWNLOAD (Save Link As)
4 ZILOG Z80 DOWNLOAD (Save Link As)
5 Zilog Z80 Definition of Memory Map Different Modes of Addressing AMD AM2901 Intel MCS-51 MCS-51 Registers MCS-51 Data Space MCS-51 Special function regs DOWNLOAD (Save Link As)
6 MCS-51 Peripherals UART About Serial data transfer techniques I2C Bus SPI Analog Comparator A/D DOWNLOAD (Save Link As)
7 MCS-51 Stack Sample Stack Operation MCS-51 other special function registers Microchip Corporation Introduction to ZigBee networks PIC's bank number PIC's data and code space DOWNLOAD (Save Link As)
8 More about Stack What is a code profiler? Intro to real-time systems What is a C compiler? GNU C Compiler Microchip PIC10 & PIC16 PIC17/18 What is DMA? PIC24 and dsPIC Multiply and Accumulate DOWNLOAD (Save Link As)
9 More on Multiply & Accumulate 8086 CPU backward compatibility Addressing in 8086 8086 Pins MIN and MAX modes for 8086 8086 Registers and Flags Segment Registers DOWNLOAD (Save Link As)
10 More description of DMA simple DMA example More description of Multiply & Accumulate more on 8086 segment registers CS, DS, ES and SS registers Memory models in 8086 introduction to Co-processors DOWNLOAD (Save Link As)
11 Fixed point numbers Floating point numbers Definition of Dynamic range IEEE-754 standard representation of floating point values in IEEE 754 standard Floating point add and multiplication 8087 Co-processor structure DOWNLOAD (Save Link As)
12 Debugging an application under x86 (Using visual studio) Debugging basic techniques Floating point registers and floating point co-processor x86 assembly of a C program x87 system architecture Floating point function emulation and comparison Disassembling an application using IDA Pro TMS320C31 Floating point DSP intro Why DSPs? DOWNLOAD (Save Link As)
13 Bit-reversed addressing Example C31 board demonstration PROM - EPROM - EEPROM memories Flash ROM memories Floating point vs Fixed Point DSPs Dynamic range in DSPs Texas Instruments DSPs What is a boot loader? TMS320C3X internal block diagram TMS320C3X DMA controller and peripherals Data and Instruction buses on C3X DOWNLOAD (Save Link As)
14 Internal Structure of C3x DSP Detailed description of bus operations Detailed description of on-chip memories C3x Architecture Registers Zero-Delay Loops Addressing modes in C3s DSP Indirect addressing Circular Addressing Bit-reversed Addressing Sample FIR Filter code DOWNLOAD (Save Link As)
15 Analysis of sample C30 instruction Pipelines in CPUs Pipeline depth in CPUs Effect of jump instruction on pipeline Branch instruction in C3X DSP Delayed Branch in C3X DSP Branch Prediction DOWNLOAD (Save Link As)
16 More description of Delayed Branch and Branch Prediction Definition of MFLOPS Texas Instruments code composer studio software for C3X DSP Definition of compiler and linker Memory Map of C3X DSPs Linker Script and its structure Debugging an application using Code composer studio Attach to process operation in X86 architecture Addresses of applications in windows DOWNLOAD (Save Link As)
17 More on linker script Virtual memory addresses and address translation Page tables : Virtual to physical address conversion Translation Lookaside Buffer Memory Management Unit CAM memories X86 protected mode of operation DOWNLOAD (Save Link As)
18 Why do we use cache memories? Basic idea of cache memory Systems with Multiple Levels of Cache Basic CPU cache structure Direct Mapped Cache Memories Fully Associative Cache Memories Set-Associative Cache Memories AMD Athlon-64 Cache Structure DOWNLOAD (Save Link As)
19 SRAM memories Asynchronous SRAM memory operation Synchronous NoBL SRAM memory NoBL SSRAM operation DRAM memory operation Sample DDR SDRAM memory timing Basics of Address decoding The introduction to ARM CPU ARM CPU history DOWNLOAD (Save Link As)
20 More on ARM histroy What is a core? ARM as a licensable core ARM income Different families of ARM architecture Brief intro on capabilities of ARM CPUs Bus structure Address Decoding Co-processor interface DOWNLOAD (Save Link As)
21 ARM Assembly Language ARM Processor Operation Modes ARM CPU Registers CPSR Register Shadow registers in different modes Exception handling mechanism Basic Assembly Instruction Syntax Arithmatic and logical operations Barrel shifter operation DOWNLOAD (Save Link As)
22 Simple assembly program for ARM Intro to ATMEL ARM evaluation kit Multiplication operation for ARM Load/Store instructions Addressing Modes Multiple Load/Store operations for ARM Flow control instructions Conditional branch in ARM Stack operations and management DOWNLOAD (Save Link As)
23 Sample ARM Assembly program introduction to ATMEL ARM9 Eval kit Development Environments for ARM More on GNU C compiler Definition of Cross-Compilation operation Keil MDK for ARM Simple C application for ARM ARM Application Debugging and Simulation Mixing C and Assembly language Writing assembly sub-routines in C Simple assembly sub-routine for data transfer between two locations of memory DOWNLOAD (Save Link As)
24 Branch and Link instruction in ARM Conditional execution of instructions Overview of ARM instruction set Programming example: 64bit addition Programming example: loops Programming example: count negative Parallel Input/Output for ARM uC Programming PIO using C important PIO registers intro to Power Management controller DOWNLOAD (Save Link As)
25 Overview of AT91SAM7X UART module UART module registers volatile type in C Structure of a sample delay (wait) function Brief description of programmable - interval timer Using C structs for managing peripherals Multiple functionalities of device pins DOWNLOAD (Save Link As)
26 Advanced interrupt controller programmable interval timer C programming for the above peripherals DOWNLOAD (Save Link As)

Copyright, Mohammad S. Sadri, 2025.