Embedded System programming in plain view

Ch 1 Introduction to Embedded Systems

 * Introduction ([[Media:ESys.1.A.Intro.20140919.pdf |pdf]])

Ch 2 Embeeded C Programming

 * Overview ([[Media:ESys.2.A.Overview.20180528.pdf |pdf]])
 * Token ([[Media:ESys.2.B.Token.20180328.pdf |pdf]])
 * Literals ([[Media:ESys.2.C.Literal.20180328.pdf |pdf]])
 * Variables ([[Media:ESys.2.D.Variable.20180328.pdf |pdf]])
 * Expression ([[Media:ESys.2.E.Expression.20180409.pdf |pdf]])
 * Flow Control ([[Media:ESys.2.F.Flow.20180410.pdf |pdf]])
 * Pointers ([[Media:ESys.2.G.Pointer.20180410.pdf |pdf]])
 * Arrays ([[Media:ESys.2.H.Array.20180417.pdf |pdf]])
 * Structures ([[Media:ESys.2.I.Structure.20180417.pdf |pdf]])
 * Functions ([[Media:ESys.2.J.Functions.20180417.pdf |pdf]])
 * Preprocessor ([[Media:ESys.2.K.Preprocessor.20180417.pdf |pdf]])

Ch 3 GNU Toolchain
 General Background for Using GCC 
 * ([[Media:Preproc.20150205.pdf |Preprocessor]])
 * ([[Media:Compiler.20140926.pdf |Compiler]])
 * ([[Media:Assembly.20160526.pdf |Assembler]])
 * ([[Media:Library.20141024.pdf |Library]])
 * (Linker)
 * ([[Media:Binutil.20141009.pdf |Binutil]])
 * ([[Media:ELF.20160328.pdf |ELF]])

GNU Toolchains for ARM Processors
 * elinux.org/Toolchains
 * Mentor Graphics' Code Sourcery
 * Linaro
 * GNU Toolchain Examples ([[Media:ESys.4.A.toolchains.20141009.pdf |pdf]])

ARM Emulator
 * QEMU - a open source processor emulator


 * Software Development Tools ([[Media:ESys.2.A.SDT.20140924.pdf |pdf]])

Ch 4 Programming ARM Processors

 * Assembly Language ([[Media:ESys3.1A.Assembly.20160608.pdf |pdf]])
 * Machine Language ([[Media:ESys3.2A.Machine.20160615.pdf |pdf]])
 * Programming Structure ([[Media:ESys3.3A.Program.20160608.pdf |pdf]])
 * Stack & Frame Pointers ([[Media:ESys.3.A.ARM-Stack.20160707.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 Architecture wiki pages ([[Media:ARM Arch.note.20140731.pdf |pdf]])
 * ARM Microrchitecture wiki pages ([[Media:ARM microarch.note.20140731.pdf |pdf]])
 * Difference between ARM7 and ARM9

Ch 5 Raspberry Pi Bare Metal Programming

 * Kernel Programming using QEMU ([[Media:ESys.5.A.Hello.20141112.pdf |pdf]])
 * Bare Metal C Programming ([[Media:ESys.6.A.BareMetalC.20150123.pdf |pdf]])
 * Bare Metal Assembly Programming
 * LED Test ([[Media:ESys.7.A.BareMetalAsm.20150918.pdf |pdf]])
 * Display Test
 * Input Test

Ch 6 Embedded Linux

 * Paul Krzyzanowski' OS Lecture Notes
 * UBoot


 * Device Driver


 * System Call : ioctl, mknod

Serial Communications
 UART 
 * wikipedia pages on Serial Communications ([[Media:Serial Comm.note.20170730.pdf |pdf]])

 RS232 

 SPI 

 I2C 

 CAN 

 USB 

SBC (Single Board Computers)

 * wikipedia pages about Arduino SBC ([[Media:Arduino.note.20170728.pdf |pdf]])

 Arduino 
 * Arduino at a glace (See Arduino Cheat Sheet)

 Raspberry Pi 

 Beagleboard 

 Phidget  : (Physical Widget) go to [ Electrical_%26_Computer_Engineering_Studies ]