Tất cả chuyên mục

Mục

STM32 / Firmware

Có 15 nội dung trong category này.

Nội dung liên quan

STM32 / Firmware

Blog STM32 / Firmware

STM32 Bootloader: Execute from RAM, UART Update và Jump to Application

Xây dựng bootloader thực tế trên STM32G0: execute from RAM để erase flash không freeze, nhận firmware qua UART, jump đúng cách vào application với VTOR và MSP.

#STM32G0#Bootloader#Execute from RAM +5
Blog STM32 / Firmware

Flash STM32G0: Linker Script, EEPROM Emulation và Dual Bank

Từ linker script chia vùng Flash, erase/write API, tại sao single-bank freeze, đến EEPROM emulation thực tế trên STM32G0 dual bank - không dùng thư viện ST, tự viết cho gọn.

#STM32G0#Flash#EEPROM Emulation +4
Blog STM32 / Firmware

FreeRTOS trên STM32: Task, Queue, Signal và cách tổ chức firmware cho cả team

Triển khai dự án FreeRTOS trên STM32.

#FreeRTOS#STM32#RTOS +6
Blog STM32 / Firmware

USB Device STM32 nâng cao: Vendor Request, Bulk, DMA và Debug với JTAG

USB Device STM32: xử lý vendor request và truyền qua DMA cho bulk và interrupt.

#USB#STM32#Vendor Request +7
Blog STM32 / Firmware

USB Descriptor: Phân tích từng field và HID Report Descriptor từ góc firmware

Phân tích USB Descriptor, HID Report Descriptor của thiết bị composite CDC+HID.

#USB#Descriptor#HID Report Descriptor +5
Blog STM32 / Firmware

USB Device trên STM32: CDC, HID và cách dùng ST Middleware thực tế

USB Device trên STM32 với CDC và HID trong dự án thực tế.

#USB#STM32#CDC +6
Blog STM32 / Firmware

USB Transfer Types: Interrupt, Bulk, Control và Isochronous từ góc firmware

Giải thích về 4 loại USB transfer.

#USB#Transfer Type#Interrupt Transfer +6
Ghi chú STM32 / Firmware

Flash, EEPROM và RAM khác nhau như thế nào?

Giải thích nguyên lý hoạt động của Flash, EEPROM và RAM.

#flash#eeprom#memory +3
Ghi chú STM32 / Firmware

Flash Operations STM32: Erase, Write, Polling và tại sao program đứng

Cách thao tác Flash STM32 qua HAL: unlock, erase, write, polling vs interrupt, và nguyên nhân program freeze khi xóa Flash.

#flash#stm32#erase +4
Ghi chú STM32 / Firmware

Linker Script STM32: MEMORY, sections và tại sao .data cần hai địa chỉ

Giải thích linker script STM32 căn bản: MEMORY region, .text/.data/.bss, LMA vs VMA, startup copy.

#linker script#stm32#embedded +2
Ghi chú STM32 / Firmware

Reset Vector và Bootloader trên Cortex-M: VTOR, MSP và jump sequence

Reset vector là gì, VTOR hoạt động ra sao, và chuỗi bước cần thiết để bootloader jump đúng cách vào application - tránh crash sau khi có interrupt đầu tiên.

#bootloader#reset vector#vtor +4
Ghi chú STM32 / Firmware

Startup Code STM32: Reset Handler, Vector Table và những gì xảy ra trước main()

Giải thích startup code STM32: vector table, reset handler, MSP, copy .data, zero .bss - những gì firmware phải làm trước khi gọi main().

#startup#reset handler#vector table +3
Ghi chú STM32 / Firmware

STM32G0 Dual Bank Flash: Read-While-Write và EEPROM Emulation không freeze

STM32G0B1 dual bank mode: DBANK option bit, read-while-write, tại sao erase Bank 2 không block code đang chạy ở Bank 1, và gotcha về prefetch khi jump giữa bank.

#stm32g0#dual bank#flash +3
Blog STM32 / Firmware

UART non-blocking logger trên STM32 với DMA + Ring Buffer

Thiết kế debug UART non-blocking cho STM32: tránh printf, xử lý mất log với DMA, dùng ring buffer và DMA callback.

#STM32#UART#DMA +5
Ghi chú STM32 / Firmware

Redirect printf bằng _write() trên STM32 là gì?

Giải thích cách printf trong newlib/newlib-nano đi qua _write() và được redirect ra UART trên STM32.

#STM32#printf#newlib +2