diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/config.h | 9 | ||||
-rw-r--r-- | include/panic.h | 4 | ||||
-rw-r--r-- | include/util.h | 8 |
3 files changed, 21 insertions, 0 deletions
diff --git a/include/config.h b/include/config.h index cfd7a5f97d..b119823601 100644 --- a/include/config.h +++ b/include/config.h @@ -414,6 +414,15 @@ #define CONFIG_DEBUG_ASSERT_REBOOTS /* + * On assertion failure, prints only the file name and the line number. + * + * Ignored if CONFIG_DEBUG_ASSERT_REBOOTS is not defined. + * + * Boards may define this to reduce image size. + */ +#undef CONFIG_DEBUG_ASSERT_BRIEF + +/* * Disable the write buffer used for default memory map accesses. * This turns "Imprecise data bus errors" into "Precise" errors * in exception traces at the cost of some performance. diff --git a/include/panic.h b/include/panic.h index 40bab2487e..74376554b6 100644 --- a/include/panic.h +++ b/include/panic.h @@ -101,8 +101,12 @@ void panic_data_print(const struct panic_data *pdata); * @param fname File name where assertion happened * @param linenum Line number where assertion happened */ +#ifdef CONFIG_DEBUG_ASSERT_BRIEF +void panic_assert_fail(const char *fname, int linenum); +#else void panic_assert_fail(const char *msg, const char *func, const char *fname, int linenum); +#endif /** * Display a custom panic message and reset diff --git a/include/util.h b/include/util.h index 8b1e51e2c5..e83e2fe05e 100644 --- a/include/util.h +++ b/include/util.h @@ -18,11 +18,19 @@ */ #ifdef CONFIG_DEBUG_ASSERT #ifdef CONFIG_DEBUG_ASSERT_REBOOTS + +#ifdef CONFIG_DEBUG_ASSERT_BRIEF +#define ASSERT(cond) do { \ + if (!(cond)) \ + panic_assert_fail(__FILE__, __LINE__); \ + } while (0) +#else #define ASSERT(cond) do { \ if (!(cond)) \ panic_assert_fail(#cond, __func__, __FILE__, \ __LINE__); \ } while (0) +#endif #else #define ASSERT(cond) do { \ if (!(cond)) \ |