/* * Copyright (c) 2019 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include /** * @brief Assert Action Handler * * This routine implements the action to be taken when an assertion fails. * * System designers may wish to substitute this implementation to take other * actions, such as logging program counter, line number, debug information * to a persistent repository and/or rebooting the system. * * @param N/A */ #ifdef CONFIG_ASSERT_NO_FILE_INFO __weak void assert_post_action(void) #else __weak void assert_post_action(const char *file, unsigned int line) #endif { #ifndef CONFIG_ASSERT_NO_FILE_INFO ARG_UNUSED(file); ARG_UNUSED(line); #endif #ifdef CONFIG_USERSPACE /* User threads aren't allowed to induce kernel panics; generate * an oops instead. */ if (k_is_user_context()) { k_oops(); } #endif k_panic(); } void assert_print(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintk(fmt, ap); va_end(ap); }