| # Copyright 2021 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| if PLATFORM_EC_DEBUG_ASSERT |
| |
| choice PLATFORM_EC_DEBUG_ASSERT_MODE |
| prompt "Select behaviour on assertion failure" |
| help |
| This selects the action taken when the board hits an assertion |
| failure in the code. This should not happen in normal operation, |
| but can appear during development when the code is not yet fully |
| tested. |
| |
| config PLATFORM_EC_DEBUG_ASSERT_REBOOTS |
| bool "Reboot" |
| help |
| Prints a message and reboot if an assert() macro fails at runtime. |
| If PLATFORM_EC_SOFTWARE_PANIC is enabled then the information is |
| written to the panic log before rebooting. |
| |
| config PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT |
| bool "Generate a breakpoint" |
| help |
| Immediately hits a breakpoint instruction (without printing a message) |
| so that a connected JTAG debugger can be used to debug the problem |
| from there. If there is no debugger connected then the breakpoint |
| instruction will cause the board to reboot immediately. |
| |
| endchoice # PLATFORM_EC_DEBUG_ASSERT_MODE |
| |
| config PLATFORM_EC_DEBUG_ASSERT_BRIEF |
| bool "Use brief assertion-failure messages" |
| depends on PLATFORM_EC_DEBUG_ASSERT_REBOOTS |
| select ASSERT_NO_COND_INFO |
| help |
| Normally the assertion-failure messages include the expression that |
| failed and the function name where the failure occurred. These are |
| both stored as strings and can add a lot to the size of the image, |
| since they are generated for every call to assert(). Use this option |
| to drop them so that only the file and line number are shown. |
| |
| This option is of course not available with |
| PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT, since that does not print a |
| message at all. |
| |
| ASSERT_NO_FILE_INFO and ASSERT_NO_MSG_INFO can also be enabled to |
| further limit image size. |
| |
| endif # PLATFORM_EC_DEBUG_ASSERT |