STM32 + HAL + FreeRTOS series

I have been postponing learning STM HAL drivers for years mostly because last time I was playing with these chips was ~7 years ago, when their HAL was horrendously broken and I opted for StdPeriph drivers instead. Now I've talked to some people who deal with it on daily basis, and they've ensured me that it's finally usable. So in this series I'll be delving head-first into it, together with FreeRTOS.

This series is based around STM32F429i-Discovery board, which contains enough peripherals and pins to play around with for educational purposes.

Intro: STM32 + HAL + FreeRTOS contains a bunch of nonsense on whats and whys, highly optional, since there is no code or anything else of value.

Part I: Setup (blinky) deals with setting up development environment on Linux, as well as Windows, to get basic blinker task off the ground.
Part II: UART is about the simplest(ish) way of implementing feedback from the devboard via UART in blocking mode.

Part III: SPI in blocking mode connects to the on-board L3GD20 gyroscope and fetches its WHO_AM_I register in blocking mode.

Part IV: IDE (Eclipse) setup briefly shows how to import Makefile project into Eclipse and how to get it to recognize all the symbols used, so that actual errors don't get swamped out by Eclipse bitching about symbols.

Part V: SPI with DMA shows how to set up DMA communications, as well as use of queue to pass a custom data structure from interrupts and code to a separate processing task.

All the code is available on GitHub, I'll try to leave these simple examples untouched as I progress. This will probably involve creating a bunch of short-lived or single-shot tasks, which just show the intent and mechanism of getting it done.

No comments:

Post a comment