| 1234567891011121314151617181920212223242526272829303132333435 |
- #include "check.h"
- #include "furi-hal-task.h"
- #include <furi-hal-console.h>
- #include <stdio.h>
- void __furi_print_name(void) {
- if(task_is_isr_context()) {
- furi_hal_console_puts("[ISR] ");
- } else {
- const char* name = osThreadGetName(osThreadGetId());
- if(name == NULL) {
- furi_hal_console_puts("[main] ");
- } else {
- furi_hal_console_puts("[");
- furi_hal_console_puts(name);
- furi_hal_console_puts("] ");
- }
- }
- }
- void __furi_abort(void) {
- __disable_irq();
- asm("bkpt 1");
- while(1) {
- }
- }
- void furi_crash(const char* message) {
- furi_hal_console_puts("\r\n\033[0;31m[CRASH]");
- __furi_print_name();
- furi_hal_console_puts(message ? message : "Programming Error");
- furi_hal_console_puts("\r\nSystem halted. Connect debugger for more info\r\n");
- furi_hal_console_puts("\033[0m\r\n");
- __furi_abort();
- }
|