STM32 FreeRTOS Counting Semaphore Tasks Demo
- Clone repo → Open .ioc file
- Build → Flash to STM32 board
- Open UART terminal (115200 baud)
- Watch producer/consumer synchronization
✓ Proper semaphore initialization/cleanup ✓ Task priority inheritance awareness ✓ Infinite timeout handling (portMAX_DELAY) ✓ Stack overflow protection ✓ Deadlock prevention ✓ ISR-safe semaphore operations ✓ Configurable semaphore max count
make all
make DEBUG=1
make MCU=STM32F103RB
Producer Task1: Semaphore given (count=1) Producer Task2: Semaphore given (count=2) Producer Task3: Semaphore given (count=3) Consumer Task: Processing resource 1 Consumer Task: Processing resource 2 Consumer Task: Processing resource 3 Producer Task1: BLOCKED (max count reached) [Tasks continue cycling...]