XDK110
BCDS
© Bosch Connected Devices and Solutions GmbH reserves all rights even in the event of industrial property rights. We reserve all rights of disposal such as
copying and passing on to third parties. BOSCH and the symbol are registered trademarks of Robert Bosch GmbH, Germany.
Note: Specifications within this document are subject to change without notice.
General Information Guide XDK110
!
Page
!
38
Assertion
Assertions are used in XDK to ensure certain conditions that must be met when calling a function
or executing a given piece of code. The developer uses assertions to indicate explicit assumptions
that he makes during the development of the code.
In case one of these assumptions is violated during the execution of the application, XDK will stop
and turn on all LEDs. Furthermore, the following message will be printed out on the console:
XDK will have to be reset now, before it can be used again. Either you simply switch it off and on
again, and XDK will then execute the installed application. Or you force it into bootloader mode
(see 3.6.2) to be able to install a new application onto XDK.
To debug an assertion, dig into the code and find the place where your program asserted. The
assertion will tell you which assumption was not fulfilled. Check your code to make sure that all
assumptions are met when calling another function.
Stack Overflow
The call stack of a program is the memory that is allocated for holding runtime information that is
mostly produced while calling functions. Each task in freeRTOS has a limited stack size. A task that
exceeds its own reserved stack size corrupts the memory of other tasks, which will lead to
unpredictable behavior. This situation is called stack overflow and must be avoided. XDK uses a
heuristic to detect whether a stack overflow has occurred. If this is the case, XDK will turn on the
red and yellow LED and print out the following message on the console:
XDK will have to be reset now, before it can be used again. Either you simply switch it off and on
again, and XDK will then execute the installed application; or you force it into bootloader mode
(see 3.5.2) to be able to install a new application onto XDK.
asserted at Filename lib/FreeRTOS/source/queue.c, line no 599
----- STACK OVERFLOW -----Task Name: LCA_application -----Current Task Handle: 0xAB