The necessities in Microprocessor Based System Design

Background
Combinational and Sequential Circuits
 * [[Media:DD2.B.4..Adder.20131007.pdf |Adder]]
 * [[Media:DD3.A.1.LatchFF.20160308.pdf |Latches and Flipflops]]

FSM
 * [[Media:DD3.A.3.FSM.20131030.pdf |FSM]]
 * [[Media:CArch.2.A.Bubble.20131021.pdf |FSM Example]]

Tiny CPU Example
 * [[Media:CDsgn6.TinyCPU.2.A.ISA.20160511.pdf |Instruction Set]]
 * [[Media:CDsgn6.TinyCPU.2.B.DPath.20160502.pdf |Data Path]]
 * [[Media:CDsgn6.TinyCPU.2.C.CPath.20160427.pdf |Control Path]]
 * [[Media:CDsgn6.TinyCPU.2.D.Implement.20160513.pdf |FPGA Implementation]]

Microprocessor Architecture

 * ARM Architecture
 * - Programmer's Model ([[Media:ARM.1Arch.1A.Model.20180321.pdf |pdf]])
 * - Pipelined Architecture ([[Media:ARM.1Arch.2A.Pipeline.20180419.pdf |pdf]])


 * ARM Organization


 * ARM Cortex-M Processor Architecture
 * ARM Processor Cores

Instruction Set Architecture

 * ARM Instruction Set
 * - Overview ([[Media:ARM.2ISA.1A.Overview.20190611.pdf |pdf]])
 * - Addressing Modes ([[Media:ARM.2ISA.2A.AddrMode.20191108.pdf |pdf]])
 * - Multiple Transfer ([[Media:ARM.2ISA.3A.MTransfer.20190903.pdf |pdf]])
 * - Assembler Format
 * - Data Processing ([[Media:ARM.2ISA.4A.Proc.Format.20200204.pdf |pdf]])
 * - Data Transfer ([[Media:ARM.2ISA.4B.Trans.Format.20200205.pdf |pdf]])
 * - Coprocessor ([[Media:ARM.2ISA.4C.CoProc.Format.20191214.pdf |pdf]])
 * - Summary ([[Media:ARM.2ISA.4D.Summary.Format.20200205.pdf |pdf]])
 * - Binary Encoding ([[Media:ARM.2ISA.5A.Encoding.201901105.pdf |pdf]])


 * Thumb Instruction Set

ARM Assembly Programming (I)

 * 1. Overview ([[Media:ARM.2ASM.1A.Overview.20200101.pdf |pdf]])
 * 2. Example Programs ([[Media:ARM.2ASM.2A.Program.20200108.pdf |pdf]])
 * 3. Addressing Modes ([[Media:ARM.2ASM.3A.Address.20200127.pdf |pdf]])
 * 4. Data Transfer ([[Media:ARM.2ASM.4A.DTransfer.20230726.pdf |pdf]])
 * 5. Data Processing ([[Media:ARM.2ASM.5A.DProcess.20200208.pdf |pdf]])
 * 6. Control ([[Media:ARM.2ASM.6A.Control.20200215.pdf |pdf]])
 * 7. Arrays ([[Media:ARM.2ASM.7A.Array.20200311.pdf |pdf]])
 * 8. Data Structures ([[Media:ARM.2ASM.8A.DataStruct.20200718.pdf |pdf]])
 * 9. Finite State Machines ([[Media:ARM.2ASM.9A.FSM.20200417.pdf |pdf]])
 * 10. Functions ([[Media:ARM.2ASM.10A.Function.20210115.pdf |pdf]])
 * 11. Parameter Passing ([[Media:ARM.2ASM.11A.Parameter.20210106.pdf |pdf]])
 * 12. Stack Frames ([[Media:ARM.2ASM.12A.StackFrame.20210611.pdf |pdf]])



ARM Assembly Programming (II)



 * 1. Thumb instruction programming ([[Media:ARM.2ASM.Thumb.20240711.pdf |pdf]])
 * 2. Exceptions ([[Media:ARM.2ASM.Exception.20220722.pdf |pdf]])
 * 3. Exception Programming ([[Media:ARM.2ASM.ExceptionProg.20220311.pdf |pdf]])
 * 4. Exception Handlers ([[Media:ARM.2ASM.ExceptionHandler.20220131.pdf |pdf]])
 * 5. Interrupt Programming ([[Media:ARM.2ASM.InterruptProg.20211030.pdf |pdf]])
 * 6. Interrupt Handlers ([[Media:ARM.2ASM.InterruptHandler.20211030.pdf |pdf]])
 * 7. Vectored Interrupt Programming ([[Media:ARM.2ASM.VectorInt.20230610.pdf |pdf]])
 * 8. Tail Chaining ([[Media:ARM.2ASM.TailChain.20230816.pdf |pdf]])


 * ARM Assembly Exercises ([[Media:ESys.3.A.ARM-ASM-Exercise.20160608.pdf |A.pdf]], [[Media:ESys.3.B.Assembly.20160716.pdf |B.pdf]])

ARM Assembly Programming (III)

 * 1. Fixed point arithmetic (integer division)
 * 2. Floating point arithmetic
 * 3. Matrix multiply

ARM Linking

 * arm link ([[Media:arm_link.20211208.pdf |pdf]])

ARM Microcontroller Programming

 * 1. Input / Output
 * 2. Serial / Parallel Port Interfacing
 * 3. Analog I/O Interfacing
 * 4. Communication

Architectural Support

 * High Level Languages
 * System Development
 * Operating Systems

Timers

 * Timer / Counter ([[Media:ARM.4ASM.Timer.20220801.pdf |pdf]])
 * Real Time Clock
 * Watchdog Timer

Serial Bus

 * UART : Universal Asynchronous Receiver/Transmitter ([[Media:ARM.4ASM.UART.20220924.pdf |pdf]])
 * I2C : Inter-Integrated Circuit
 * SPI : Serial Peripheral Interface
 * USB : Universal Serial Bus Device Controller

I/Os

 * General Purpose Input/Output ports (GPIO)
 * Pulse Width Modulator
 * Analog-to-Digital Converter (ADC)
 * Digital-to-Analog Converter (DAC)

H/W and S/W Synchronization

 * busy wait synchronization
 * handshake interface

Interrupt Synchronization

 * interrupt synchronization
 * reentrant programming
 * buffered IO
 * periodic interrupt
 * periodic polling

Time Interfacing

 * input capture
 * output compare

Serial Interfacing

 * Programming UART
 * Programming SPI
 * Programming I2C
 * Programming USB

Analog Interfacing

 * OP Amp
 * Filters
 * ADC
 * DAC

Instruction Set Architecture

 * ARM Instruction Set
 * - Overview ([[Media:ARM.2ISA.1A.Overview.20180528.pdf |pdf]])
 * - Binary Encoding ([[Media:ARM.2ISA.2A.Encoding.20180528.pdf |pdf]])
 * - Assembler Format ([[Media:ARM.2ISA.3A.Format.20180528.pdf |pdf]])


 * Thumb Instruction Set
 * ARM Assembly Language ([[Media:ESys3.1A.Assembly.20160608.pdf |pdf]])
 * ARM Machine Language ([[Media:ESys3.2A.Machine.20160615.pdf |pdf]])

go to [ Electrical_%26_Computer_Engineering_Studies ]