Embedded Systems RoadMap
Embedded Systems RoadMap
Embedded Systems RoadMap
md 6/21/2023
Table of Contents
Development Environment
Cross Compilation
Development Tools
Embedded Hardware
Computer Architecture
RISC
ARM
Endianness
Embedded Platforms
Microcontroller
System on a Chip (SoC)
Single Board Computer
FPGA
Serial Communication
SPI
I2C
UART
RS232
RS485
GPIO
Pin Modes
Pull Up/Down
Push-Pull
Open-Drain
Direction
Input
Output
1 / 14
README.md 6/21/2023
Analog Input
ADC
Analog Output
PWM
DAC
Timer
Constraints
Power
Memory
Program (ROM)
Dynamic (RAM)
Bare Metal
GNU/Linux
Real Time Operating Systems
Embedded Software
C Keywords
volatile
static
const
pragma
attribute
restrict
inline
Watchdog Timer
Memory Alignment
Pointers
Bit Manipulation
Bitwise
Arithmetic
Interrupts
Optimizations
Coding Standards
MISRA
ISO/IEC 90003
Registers
2 / 14
README.md 6/21/2023
Bit Fields
Memory Map
Peripherals
Application Layer
Queue
Circular Buffer
Semaphore
Event Handling
Producer-Consumer
Domain Knowledge
Debugging
Static Analysis
Dynamic Analysis
Logic Analyzer
Oscilliscope
Wireshark
JTAG
SWD
Development Environment
Cross Compilation
3 / 14
README.md 6/21/2023
Development Tools
IDE
PlatformIO
Visual Studio Code
VisualGDB
Embedded Hardware
Article: "Getting to Know the Hardware", Barr Group
Computer Architecture
RISC
ARM
Endianness
Article: "Big Endian, Little Endian, Endianness: Understanding Byte Arrangements in Digital
Systems", All About Circuits
Embedded Platforms
Microcontroller
System on a Chip
4 / 14
README.md 6/21/2023
Video: "Arm Education Media Launches System-on-Chip Design Online Courses", YouTube
FPGA
Article: "How FPGAs work, and why you'll buy one", Embedded Related
Video: "A Look Inside: SoC FPGAs Introduction (Part 1 of 5)", YouTube
Serial Communication
SPI
I2C
5 / 14
README.md 6/21/2023
UART
RS232
RS485
Video, "What is RS485 and How it's used in Industrial Control Systems?", YouTube
GPIO
Video: "How GPIO works | General Purpose Input Output | GPIO Behind The Scene", YouTube
Pin Modes
6 / 14
README.md 6/21/2023
Pull Up/Down
Push-Pull
Video: "GPIO Output Configuration | Open Drain configuration | Push Pull configuration",
YouTube
Open-Drain
Direction
Input
Output
Analog Input
ADC
Analog Output
PWM
DAC
Article: "About Digital to Analog Converter (DAC) and Its Applications", ElProCus
Timer
7 / 14
README.md 6/21/2023
MSP430 Timer
Constraints
Video: "Optimizing C for Microcontrollers - Best Practices - Khem Raj, Comcast RDK", YouTube
Power
Video: "How To Lower AVR Microcontroller Power using Power Reduction Registers", YouTube
Video: "Microcontroller Design Considerations for Ultra Low Power Applications", YouTube
Memory
Video: "Different Types of Memory in Microcontroller : Flash Memory, SRAM and EEPROM", YouTube
Program (ROM)
Dynamic (RAM)
Video: "Tech Talk: Pros and Cons of Dynamic Memory Allocation", YouTube
Bare Metal
GNU/Linux
8 / 14
README.md 6/21/2023
Embedded Software
Video: "Computer Software", YouTube
C Keywords
volatile
Video: "Tech Talk: Pro Tips for Using C’s Volatile Keyword", YouTube
static
const
pragma
attribute
restrict
inline
9 / 14
README.md 6/21/2023
Watchdog Timer
Memory Alignment
Pointers
Bit Manipulation
Bitwise
Arithmetic
Interrupts
MSP430 Interrupts
Video: "The use of the STACK during an IRQ + Nested IRQs", YouTube
Video: "Reading from a Switch Using a Port IRQ Program Example", YouTube
Video: "Changing Edge Sensitivity (PxIES) & Forgetting to Clear a Flag", YouTube
Optimizations
Coding Standards
10 / 14
README.md 6/21/2023
Video: "Tech Talk: Are Coding Standards & Static Analysis Really That Important?", YouTube
MISRA
ISO/IEC 90003
Registers
Bit Fields
Video: "Bit Fields in C. What are they, and how do I use them?", YouTube
Memory Map
Peripherals
Textbook: "Reusable Firmware Development: A Practical Approach to APIs, HALs and Drivers", Amazon
11 / 14
README.md 6/21/2023
Video: "0x1b7 What is a BSP | Board Support Package | Big Picture | Embedded Systems Software
Development", YouTube
Application Layer
Queue
Circular Buffer
Semaphore
Event Handling
Producer-Consumer
Domain Knowledge
Video: "Learn Embedded Systems Design on ARM based Microcontrollers 1 of 2", YouTube
FFT
Video: "Digital Signal Processing (DSP) Tutorial - DSP with the Fast Fourier
Transform Algorithm", YouTube
Filters
IIR
12 / 14
README.md 6/21/2023
Video: "IIR Filters - Audio DSP On STM32 with I2S (24 Bit / 96 kHz)",
YouTube
FIR
Video: "FIR Filters - Audio DSP On STM32 (24 Bit / 48 kHz)", YouTube
Control Systems
PID
Solar
Video: "How to implement maximum power point tracking for solar charging",
YouTube
Debugging
Article: "Downloading and Debugging", Barr Group
Static Analysis
Video: "Static Code Analysis: Scan All Your Code For Bugs", YouTube
Video: "Using PC-Lint for MISRA and static code analysis", YouTube
Dynamic Analysis
13 / 14
README.md 6/21/2023
Logic Analyzer
Oscilliscope
JTAG
SWD
14 / 14