libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
libxr.cpp
1#include "libxr.hpp"
2
3#include "thread.hpp"
4
5extern "C" void libxr_fatal_error(const char* file, uint32_t line, bool in_isr)
6{
7 volatile bool stop = false;
8 while (!stop)
9 {
10 if (in_isr)
11 {
12 *(volatile int*)0 = 0; // NOLINT
13 }
14 else
15 {
17 {
18 LibXR::STDIO::Printf("Fatal error at %s:%d\r\n", file, static_cast<int>(line));
19 }
20
22 {
23 // The fatal callback is executed only on the non-ISR fatal path here.
24 // Normalize the user callback to thread context instead of forwarding the
25 // original fault source flag.
26 LibXR::Assert::libxr_fatal_error_callback_.Run(false, file, line);
27 }
28
30 }
31 }
32}
static Callback libxr_fatal_error_callback_
已注册的致命错误回调函数。 Registered fatal error callback.
static int Printf(const char *fmt,...)
Prints a formatted string to the write port (like printf).
Definition libxr_rw.cpp:603
static WritePort * write_
Write port instance. 写入端口。
Definition libxr_rw.hpp:772
static void Sleep(uint32_t milliseconds)
让线程进入休眠状态 Puts the thread to sleep
Definition thread.cpp:15