bc34689ed6
* Printf lib: wrap *printf* functions * Printf lib, FW: drop sprintf. Dolphin: dump timestamp as is, wo asctime. * FW: remove sniprintf, wrap assert functions * Printf lib: wrap putc, puts, putchar * Printf: a working but not thread-safe concept. * Poorly wrap fflush * stdglue: buffers * Core: thread local buffers * Core: move stdglue to thread api, add ability to get FuriThread instance of current thread. * RPC tests: replace sprintf with snprintf * Applications: use new stdout api * Printf lib: wrap more printf-like and stdout functions * Documentation * Apps: snprintf size fixes Co-authored-by: あく <alleteam@gmail.com>
27 lines
742 B
C
27 lines
742 B
C
#include "furi.h"
|
|
#include <string.h>
|
|
#include "queue.h"
|
|
|
|
void furi_init() {
|
|
furi_assert(!furi_is_irq_context());
|
|
furi_assert(xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED);
|
|
|
|
furi_log_init();
|
|
furi_record_init();
|
|
}
|
|
|
|
void furi_run() {
|
|
furi_assert(!furi_is_irq_context());
|
|
furi_assert(xTaskGetSchedulerState() == taskSCHEDULER_NOT_STARTED);
|
|
|
|
#if(__ARM_ARCH_7A__ == 0U)
|
|
/* Service Call interrupt might be configured before kernel start */
|
|
/* and when its priority is lower or equal to BASEPRI, svc intruction */
|
|
/* causes a Hard Fault. */
|
|
NVIC_SetPriority(SVCall_IRQn, 0U);
|
|
#endif
|
|
|
|
/* Start the kernel scheduler */
|
|
vTaskStartScheduler();
|
|
}
|