1. Hệ thống nhúng là gì? Theo định nghĩa tổng quan từ Internet, hệ thống nhúng có thể được định nghĩa là một hệ thống tính toán được thiết kế để phục vụ một mục đích chuyên biệt. Hoặc, hệ thống nhúng là một hệ thống (phụ) tính toán (computing embedded subsystem) mang một chức năng nhất đinh trong một hệ thống lớn hơn. Ví dụ: GPS navigator trên xe hơi, ABS (anti-lock breaking system), etc Không giống như các máy tính lớn với chức năng chung và đa dạng (multimedia, data processsing, AI training, computing, network server, etc), hệ thống nhúng được tối ưu hóa để tăng hiệu suất cho một công việc nhất định. Ví dụ, máy tính cầm tay 😊, điện thoại di động, đồ gia dụng, etc
Hệ thống nhúng bao gồm phần cứng (Hardware) và cả phần mềm (Software): Hardware: Chipset, chip SoC, MCU, sensors, actuators, etc Software: OS/RTOS (Linux distro, Android, QNX, Autosar, Tizen OS, FreeRTOS, etc)
Đặc tính: Kích thước nhỏ (Small size) Giá thành rẻ (Low per-unit cost) Sử dụng ít năng lượng (Low Power consumption)
Mô hình chung của hệ thống nhúng
Mô hình chung của hệ thống nhúng
2. Ứng dụng: Smart City, Smart home, Industry 4.0 Automotive, Nông nghiệp, logistics, năng lượng … 3. Kĩ năng cần cho lập trình nhúng: Ngôn ngữ lập trình C/C++ MCU: kiến trúc, model Ngoại vi (Peripherals): RAM, ROM, DMA, Timers, etc Chuẩn giao tiếp (Interfaces): I2C, SPI, UART, RTC, etc Hệ thống máy tính (OS) Kiến thức về Linux Đọc hiểu datasheet … 4. SW Layered Model (giản lược): [Application] [Middleware/Utilities]:{RFS, IPC, network, RTOS, logger, console, etc} [Drivers]:{HAL, Device Drivers, BSP, etc} [HW] Hiện tại mình đang ở middleware và có ý định tiến xuống sâu hơn (đang vọc ở HAL/Android) 😊 (to be continued)
Reference: Wikipedia, Youtube, Viblo