/ components / bootloader_support / src / bootloader_panic.c
bootloader_panic.c
 1  // Copyright 2020 Espressif Systems (Shanghai) PTE LTD
 2  //
 3  // Licensed under the Apache License, Version 2.0 (the "License");
 4  // you may not use this file except in compliance with the License.
 5  // You may obtain a copy of the License at
 6  //
 7  //     http://www.apache.org/licenses/LICENSE-2.0
 8  //
 9  // Unless required by applicable law or agreed to in writing, software
10  // distributed under the License is distributed on an "AS IS" BASIS,
11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  // See the License for the specific language governing permissions and
13  // limitations under the License.
14  
15  #include "esp_log.h"
16  #include "bootloader_common.h"
17  #include "soc/cpu.h"
18  #include "esp_rom_sys.h"
19  
20  
21  void __assert_func(const char *file, int line, const char *func, const char *expr)
22  {
23      esp_rom_printf("Assert failed in %s, %s:%d (%s)\r\n", func, file, line, expr);
24      while (1) {
25      }
26  }
27  
28  void abort(void)
29  {
30  #if !CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT
31      esp_rom_printf("abort() was called at PC 0x%08x\r\n", (intptr_t)__builtin_return_address(0) - 3);
32  #endif
33      if (esp_cpu_in_ocd_debug_mode()) {
34          __asm__("break 0,0");
35      }
36      while (1) {
37      }
38  }