Microcontrollers
STM32 Microcontroller
TI C2000 Microcontroller
TI ARM-based Microcontroller
I blinked my first LED by using a 51 microcontroller with the KEIL IDE in 2005. I was super excited on this “magic”. Later, I studied how to program the AVR microcontrollers, such ATmega16, ATmega328, using the ICC AVR IDE. At that time, Arduino was not introduced to China. I had to buy various of AVR development boards to play and explore.
I learned TI MSP430, C2000, Arm microcontrollers at University of Illinois from my teacher Dan Block. I took almost all his courses/labs in control, signal processing and embedded system. At the same time, I learned STM32 microcontrollers from YouTube, Udemy etc.
From my experience, there is no short-cut on learning hands-on embedded programming. I always tried to make my hands dirty, be patient, be careful and be safe. Learning from the bare metal programming might be wise. Third-party optimized libraries are really for experts who have been very very familiar with the low level programming. Learn to read datasheet and learn to use oscilloscope are necessary.
I personally use
FreeRTOS on STM32 microcontrollers with STM32CubeIDE, CMSIS, HALTI-RTOS (SYS/BIOS) on TI C2000 microcontroller with CCS, Bitfield, Driverlib
Cyber-physical System: systems where software and hardware components are seamlessly integrated towards performing well defined tasks.
Real-time System: an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints.
Embedded System: a microprocessor or microcontroller based computer hardware system with software that is designed to perform a dedicated function, either as an independent system or as a part of a large system. At the core is an integrated circuit designed to carry out computation for real-time operations.
Popular Scheduling AlgorithmAbbreviation (Embedded System)
APU: Application Processing Unit
ARM: Advanced RISC Machines
ASIC: Application Specific Integrated Circuit
AXI: Advanced eXtensible Interface (between PS and PL)
CLB: Configurable Logic Blocks (CLB)
CISC: Complex Instruction Set Computer
CPLD: Complex Programmable Logic Device
DDR: Double Data Rate
DRAM: Dynamic RAM
DSP: Digital Signal Processor
FPGA: Field Programmable Gate Array
HDL: Hardware Description Language
HLS: High Level Synthesis
LUTs: Lookup Tables
MCU: Microcontroller Unit
MMU: Memory Management Unit
OCM: On-chip Memory
PAL: Programmable Array Logic
PL: Programmable Logic (FPGA)
PLL: Phase Lock Loop
PLC: Programmable Logic Controller
PLD: Programmable Logic Device
PS: Processing Subsystem (ARM processor)
RAM: Random Memory Access
RISC: Reduced Instruction Set Computer
ROM: Read-only Memory
RTL: Register Transfer Logic
SoC: System on Chip
SoM: System on Module
SRAM: Static RAM
Abbreviation (MCU)
ADC: Analog to Digital Converter
CAN: Controller Area Network
CAN FD: Controller Area Network Flexible Data-Rate
DAC: Digital to Analog Converter
DMA: Direct Memory Access
FPU: Floating-point Unit
I2C: Inter-Integrated Circuit
SPI: Serial Peripheral Interface
UART: Universal Synchronous/Asynchronous Receiver/Transmitter
Back to top of the page