OpenAstroTracker-Firmware
OpenAstroTracker-Firmware copied to clipboard
Hardware abstraction layer (HAL) implementation
In order to greatly improve maintainability and expandability of Firmware code, a hardware abstraction layer (HAL) should be implemented in context of a big refactoring. The new architecture will then form the base of firmware version 2.x.x
Multiple components have to be extracted out of the current code (mainly from Mount.cpp and init files) and placed into well designed and encapsulated units. These units should follow single-responsibility principle (e.g. a stepper driver should only be responsible for the actual driver hardware and not care about higher level hardware or software like the board it is attached to or the interrupt routine used for step triggering).
The strict encapsulation will allow proper automated unit testing later and increase stability of the whole firmware after code or configuration changes. It will also provide an easy way for further hardware support implementations.
- [x] stepper abstraction
- [x] driver abstraction
- [ ] platform abstraction
- [ ] board abstraction