Nội dung liên quan
STM32
What Is a USB Device Class and a Composite Device?
Common USB classes (HID, CDC, MSC, Vendor Specific), and how a composite device combines several classes on a single physical device.
USB Device Class và Composite Device là gì?
Các USB class thông dụng (HID, CDC, MSC, Vendor Specific) và composite device kết hợp nhiều class trên một thiết bị như thế nào.
STM32G0 USB Lab: Composite Device
USB composite device trên STM32G0B1RE: HID Keyboard + CDC log + EP0 Vendor Request + Vendor Bulk IN. Một codebase phát triển từ HID đơn đến debug tool hoàn chỉnh qua commit/tag.
STM32G0 USB Lab: Host Debug Tool
Python tool giao tiếp với USB composite device STM32G0: CLI smoke test 4 vendor commands qua EP0 và GUI test tổng hợp HID, CDC log, vendor bulk dump trên một màn hình.
STM32G0 USB Lab: Key Input Pipeline
Keypad 4x4 matrix trên STM32G0B1RE: quét bằng BSRR/IDR trực tiếp, TIM6 5ms, debounce 2 mẫu, event queue và chính sách simultaneous-error cho ma trận không diode.
What Is STM32 GPIO Register Access?
Accessing GPIO through BSRR and IDR instead of HAL_GPIO_WritePin/ReadPin: why, when it's worth it, and how it applies to row-by-row matrix scanning on STM32.
STM32 GPIO Register Access là gì?
Truy cập GPIO bằng BSRR và IDR thay vì HAL_GPIO_WritePin/ReadPin: tại sao, khi nào phù hợp, và cách áp dụng cho matrix scan row-by-row trên STM32.
Clock Configuration for USB FS là gì?
USB Full-speed cần clock 48 MHz chính xác. Các nguồn clock khả dụng trên STM32, trade-off giữa HSI48+CRS và HSE+PLL, và checklist kiểm tra trước khi debug enumeration.
STM32 HAL USB Device Architecture là gì?
Kiến trúc STM32 USB Device Library: PCD driver, USBD core, class layer và callback flow. Firmware cần implement gì, middleware xử lý gì và cách debug đúng tầng.
GNU ld warning: LOAD segment with RWX permissions là gì?
Giải thích warning LOAD segment with RWX permissions khi build STM32 bằng GNU ld, vì sao nó xuất hiện, có nguy hiểm không, và cách xử lý bằng linker script PHDRS.
VMA và LMA trong linker script STM32 là gì?
Giải thích sự khác nhau giữa VMA và LMA trong linker script STM32, vì sao .data chạy ở RAM nhưng lại được lưu trong Flash, và vai trò của các symbol như _sidata, _sdata, _edata.
STM32 Dual-Slot UART OTA Bootloader
Case study xây dựng bootloader A/B cho STM32G0B1RE, hỗ trợ cập nhật firmware qua UART, xác thực packet CRC32, metadata pending/confirmed và rollback.
Tạo file BIN từ ELF trong STM32CubeIDE
Quick note về cách export file .bin từ .elf trong STM32CubeIDE bằng objcopy, post-build command, và cách kiểm tra file BIN đã tạo đúng chưa.
ELF, BIN, HEX và little-endian trên STM32
Giải thích sự khác nhau giữa ELF, BIN, HEX khi build firmware STM32, vì sao bootloader thường nhận file BIN, và cách đọc vector table theo little-endian.
STM32 Flash EEPROM Emulation
Project EEPROM emulation trên STM32G0B1RE dùng Flash Bank 2, append-only record, two-page transfer, CRC và fault injection bằng software reset.
STM32 FreeRTOS Firmware Skeleton
Project thực nghiệm FreeRTOS skeleton trên STM32G0B1RE, kiểm tra task timing 10 ms/100 ms, event queue, UART log mutex, monitor task và queue full policy bằng log thật.
STM32 Non-Blocking UART Logger
Project thực nghiệm UART logger non-blocking trên STM32G0B1RE, so sánh blocking transmit với UART DMA + Ring Buffer và drop counter.
Flash, EEPROM và RAM trong STM32 khác nhau thế nào?
Giải thích Flash, EEPROM và RAM trong STM32: vùng nhớ, dữ liệu mất hay giữ sau reset, EEPROM emulation, linker script và debug lỗi lưu cấu hình.
Flash Operations trong STM32 là gì?
Giải thích thao tác Flash trong STM32: unlock, erase, program, verify, lock, page/sector, alignment, HAL error và debug ghi Flash an toàn.
Linker Script STM32 là gì?
Giải thích linker script STM32: memory regions, sections .text/.data/.bss, stack heap, Flash data area, bootloader offset và debug map file.
Reset Vector và Bootloader trong STM32 là gì?
Quick note ngắn gọn về Reset Vector, vector table, Initial MSP, Reset_Handler, VTOR và flow bootloader jump vào application trên STM32/Cortex-M.
Startup Code STM32 là gì?
Giải thích Startup Code trong STM32: vector table, Reset_Handler, copy .data, clear .bss, SystemInit, main và debug lỗi trước main.
STM32G0 Dual Bank là gì?
Giải thích STM32G0 Dual Bank Flash: bank layout, page erase, read-while-write, boot bank, firmware update, EEPROM emulation và debug sai bank.