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.
This PR introduces a more powerful fatal error handler which:
yarprobotinterface
This PR addresses issue in here.
The relevant binaries are in this PR.
Description of the information sent to
yarprobotinterface
In case of a fatal error, the board will restart and send messages such as:
List. Board 10.0.1.1 has detected a fatal error (first message of type
DEBUG: tag00
w/ stringRESTARTED after FATAL error
) at its execution time 20 sec (second message with string20000 ms
). The third and fourth message tell that the error was caused by the OSAL handler and is due to stack overflow (see stringype osal_stackovf
). The handler was called by a thread the I_RQHandler SVCall_ which is the one which does thread switching and the error was caused by last scheduled thread called runDO (it is the one which ticks all teh services at 1 kHz.For the case of
hw_HardFault
handler, we also send the content of the CFSR register which can help detecting the cause of fault.List. Board 10.0.1.20 has detected a fatal error of type
hw_HardFault
. In such a case we also transmit teh content of the CFSR register.Tests
The resulting binaries have been extensively tested on a test bench with an ems board and also on the
iCubGenova09
robot, which actually produced the messages emitted by board10.0.1.20
.