The code assumes that whenever scheduler is running I2CSemaphore is available. Initialising it in a task might lead to race conditions and is also not happening at all if the task is disabled (for debugging or due to lack of need for a particular usecase). The race condition can't happen with the current code though, as GUI task has lower priority than the MOV task, and they're the only tasks that currently use I2C. However, this might change in the future with the code refactoring or introduction of new features.
BSP section for STM32F103 based Miniware products
This folder contains the hardware abstractions required for the TS100, TS80 and probably TS80P soldering irons.
Main abstractions
- Hardware Init
- -> Should contain all bootstrap to bring the hardware up to an operating point
- -> Two functions are required, a pre and post FreeRToS call
- I2C read/write
- Set PWM for the tip
- Links between IRQ's on the system and the calls in the rest of the firmware