Issue #26: ecu stm32 implement parameters database #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull request comes with critical changes to how ULog works. Previously it would skip over consecutive messages due to DMA transmission handling failure (fixed with additional events from driver), it would try to push messages over a dead USB bus (fixed using event flags and a USB state variable controlled directly from driver callbacks), it would cause a HardFault if the connection was not established in time or too many consecutive messages came in (added a check for free queue spaces before adding messages), it would lose messages that arrive up to several seconds after the scheduler is started (fixed by moving init and subscription before other functions inside KPIRover.c)
The default task stack size has been increased after a prolonged investigation of HardFault triggered soon after a snprintf() function call was made. Default task stack would grow over the timer task variable data segment and local variables inside of snprintf() subcalls will be placed on top of timers.c pointers resulting in continuous random writes issued to several of them. This will invalidate pointers and cause an attempt to access non-existing memory during master timer task execution.