Learn

Articles

The technical knowledge base behind every series and project, searchable, filterable, and organized around engineering concepts rather than dev-board marketing.

30 articles
Showing 30 of 30 articles
Porting FreeRTOS to STM32 From Scratch Adding FreeRTOS Source Files to the Build Add the FreeRTOS kernel, Cortex-M portable layer, heap implementation, and include paths to an STM32 CMake project without hiding what each file contributes. FreeRTOS · CMake · Toolchains · STM32 Porting FreeRTOS to STM32 From Scratch Configuring FreeRTOSConfig.h for STM32 Configure the FreeRTOSConfig.h settings needed for first STM32 scheduler bring-up, including tick rate, CPU clock assumptions, priorities, assertions, allocation, and minimal kernel features. FreeRTOS · STM32 · Timers · Firmware Structure Porting FreeRTOS to STM32 From Scratch Creating the First FreeRTOS Tasks on STM32 Create minimal FreeRTOS tasks on STM32, start the scheduler, and verify that task switching is working without adding unnecessary application complexity. FreeRTOS · STM32 · Firmware Structure Porting FreeRTOS to STM32 From Scratch Debugging the FreeRTOS Scheduler Bring-Up Debug common FreeRTOS scheduler bring-up failures on STM32, including failed task creation, default handler traps, missing ticks, stack problems, priority mistakes, and assertions. FreeRTOS · VSCode · Interrupts · STM32 Porting FreeRTOS to STM32 From Scratch Moving Peripheral Work into FreeRTOS Tasks Move STM32 peripheral work into FreeRTOS tasks without turning every driver into an RTOS dependency or hiding timing and interrupt boundaries. FreeRTOS · Peripheral Drivers · STM32 · Firmware Structure Porting FreeRTOS to STM32 From Scratch Preparing an STM32 CMake Project for FreeRTOS Prepare an existing STM32 CMake project for FreeRTOS by choosing source layout, configuration locations, include boundaries, and build ownership before adding kernel files. CMake · FreeRTOS · STM32 · Firmware Structure Porting FreeRTOS to STM32 From Scratch Setting Up the SysTick Timer for the RTOS Tick Connect the FreeRTOS scheduler tick to the Cortex-M SysTick timer on STM32 and understand how tick rate, CPU clock, interrupt priority, and delay timing fit together. Timers · FreeRTOS · Interrupts · STM32 Porting FreeRTOS to STM32 From Scratch Understanding the FreeRTOS Portable Layer Understand what the FreeRTOS portable layer does on STM32, including stack setup, scheduler startup, critical sections, and Cortex-M exception-based context switching. FreeRTOS · Startup Code · Interrupts · STM32 Porting FreeRTOS to STM32 From Scratch Using Queues and Delays Without Breaking Timing Use FreeRTOS queues and delays on STM32 while keeping timing, blocking behavior, queue capacity, and ISR boundaries explicit. FreeRTOS · Timers · Interrupts · STM32 Porting FreeRTOS to STM32 From Scratch When to Use Bare Metal, HAL, or FreeRTOS on STM32 Choose between a simple bare-metal loop, STM32 HAL callbacks, project-specific drivers, and FreeRTOS tasks based on timing, complexity, concurrency, debugging cost, and firmware structure. Firmware Structure · FreeRTOS · Bare Metal · STM32 Porting FreeRTOS to STM32 From Scratch Why Port FreeRTOS Yourself? Understand why manually porting FreeRTOS to STM32 is useful when you want to learn the scheduler, interrupt, stack, and build-system boundaries instead of treating the RTOS as generated project code. FreeRTOS · STM32 · Bare Metal · Firmware Structure Porting FreeRTOS to STM32 From Scratch Wiring PendSV and SVC for Context Switching Wire the Cortex-M PendSV and SVC exception handlers used by the FreeRTOS port so the scheduler can start the first task and switch task contexts on STM32. Interrupts · FreeRTOS · Startup Code · STM32 STM32 Development with CMake and VSCode Adding Startup Code to a Bare-Metal STM32 Project Add the vector table, reset handler, data initialization, BSS clearing, and main entry path needed by a bare-metal STM32 firmware image. Startup Code · Bare Metal · STM32 STM32 Development with CMake and VSCode Adding STM32CubeMX-Generated Drivers to a CMake Project Use STM32CubeMX-generated startup, HAL, CMSIS, and device support files from a CMake project without making STM32CubeIDE the owner of the workflow. CMake · Toolchains · STM32 Working with STM32 Peripherals Blinking an LED on STM32 Without Magic Blink the Nucleo L433RC-P user LED by identifying the board pin, enabling the GPIO peripheral clock, configuring output mode, and toggling the pin deliberately. GPIO · STM32 STM32 Development with CMake and VSCode Building and Flashing STM32 Firmware Without CubeIDE Build a linked STM32 firmware image, generate binary and hex outputs, and flash the Nucleo board from command-line tools instead of STM32CubeIDE. Toolchains · CMake · STM32 STM32 Development with CMake and VSCode Creating a Minimal STM32 CMake Project Create the smallest useful STM32 CMake project structure before adding startup code, linker scripts, flashing, or debugging. CMake · Toolchains · STM32 Working with STM32 Peripherals I2C on STM32 for Real Modules Bring up STM32 I2C for real breakout modules by checking wiring, pull-ups, addresses, timing, HAL return codes, and bus-level debugging assumptions. I2C · STM32 STM32 Development with CMake and VSCode Installing the STM32 CMake Toolchain on macOS Install the compiler, build tools, flashing utilities, and VSCode extensions needed for STM32 development with CMake on macOS. Toolchains · CMake · STM32 Working with STM32 Peripherals Organizing a Small STM32 Firmware Project Organize a small STM32 firmware project after adding GPIO, timers, UART, I2C, and SPI by separating board support, peripheral setup, drivers, and application code. Firmware Structure · STM32 STM32 Development with CMake and VSCode Organizing Reusable STM32 CMake Projects Structure an STM32 CMake project so application code, board configuration, startup files, linker scripts, generated vendor code, and reusable drivers have clear ownership. CMake · Toolchains · STM32 Working with STM32 Peripherals Reading a Button on STM32 Read the Nucleo L433RC-P user button as a GPIO input, handle active logic level correctly, and add a simple debounce check before using the button to control firmware behavior. GPIO · STM32 STM32 Development with CMake and VSCode Running STM32 Firmware Under a VSCode Debugger Configure VSCode to launch an STM32 debug session through OpenOCD, stop in firmware, step through startup code, and inspect target state. VSCode · Toolchains · STM32 Working with STM32 Peripherals SPI on STM32 for Real Modules Bring up STM32 SPI for real modules by checking SCK, MOSI, MISO, chip select, mode, baud prescaler, GPIO alternate functions, and transaction debugging. SPI · STM32 Working with STM32 Peripherals Touring the STM32 Nucleo L433RC-P for Peripheral Projects Map the STM32 Nucleo L433RC-P board features that matter for peripheral projects: ST-LINK, power, reset, user LED, user button, headers, and expansion connectors. STM32 Working with STM32 Peripherals UART Logging on STM32 Set up UART output on STM32 for simple firmware logs, connect baud-rate settings to clock assumptions, and use serial output alongside LEDs and the debugger. UART · STM32 Working with STM32 Peripherals Understanding STM32 Clocks Enough to Build Projects Learn the practical STM32 clock concepts needed for timers, UART, I2C, SPI, delays, and peripheral bring-up without turning the clock tree into a reference manual. STM32 · Timers STM32 Development with CMake and VSCode Understanding the STM32 Linker Script Understand how an STM32 linker script describes flash, RAM, stack, heap, and firmware sections before startup code runs. Linker Scripts · Startup Code · STM32 Working with STM32 Peripherals Using Timers on STM32 Use an STM32 hardware timer for periodic work by connecting clock assumptions, prescalers, auto-reload values, update events, and a simple LED timing example. Timers · STM32 STM32 Development with CMake and VSCode Why Use CMake and VSCode for STM32 Development? A practical look at why this site uses CMake and VSCode for STM32 firmware instead of making STM32CubeIDE the main project workflow. Toolchains · CMake · VSCode · STM32

No articles match this filter combination. Try clearing a filter or a different keyword.