8f9b2513ff
* SYSTEM: tickless mode with deep sleep. * Move FreeRTOS ticks to lptim2 * API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source. * API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode. * NFC: support for tickless mode. * API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications. * BLE: prevent sleep while core2 starting * HAL: nap while in insomnia mode * init records work * try to implement record delete * tests and flapp * flapp subsystem * new core functions to get app stat, simplify core code * fix thread termination * add strdup to core * fix tests * Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage * Refactoring: update furi record api usage, cleanup code * Fix broken merge for freertos apps * Core, Target: fix compilation warnings * Drop firmware target local * HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode. * SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial. * delete old app example-ipc * delete old app fatfs list * fix strobe app, add input header * delete old display driver * comment old app qr-code * fix sd-card test, add forced widget update * remove unused new core test * increase heap to 128k * comment and assert old core tests * fix syntax Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
52 lines
1.8 KiB
C
52 lines
1.8 KiB
C
#include <cmsis_os2.h>
|
|
#include <FreeRTOS.h>
|
|
#include <task.h>
|
|
#include <main.h>
|
|
|
|
osThreadId_t systemdHandle;
|
|
const osThreadAttr_t systemd_attributes = {
|
|
.name = "systemd",
|
|
.priority = (osPriority_t) osPriorityNormal,
|
|
.stack_size = 1024 * 4
|
|
};
|
|
|
|
void systemd(void *argument);
|
|
|
|
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
|
|
|
/* Hook prototypes */
|
|
void configureTimerForRunTimeStats(void);
|
|
unsigned long getRunTimeCounterValue(void);
|
|
void vApplicationIdleHook(void);
|
|
void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName);
|
|
|
|
__weak void configureTimerForRunTimeStats(void) {
|
|
}
|
|
|
|
__weak unsigned long getRunTimeCounterValue(void) {
|
|
return 0;
|
|
}
|
|
|
|
__weak void vApplicationIdleHook( void ) {
|
|
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
|
|
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
|
|
task. It is essential that code added to this hook function never attempts
|
|
to block in any way (for example, call xQueueReceive() with a block time
|
|
specified, or call vTaskDelay()). If the application makes use of the
|
|
vTaskDelete() API function (as this demo application does) then it is also
|
|
important that vApplicationIdleHook() is permitted to return to its calling
|
|
function, because it is the responsibility of the idle task to clean up
|
|
memory allocated by the kernel to any task that has since been deleted. */
|
|
}
|
|
|
|
__weak void vApplicationStackOverflowHook(TaskHandle_t xTask, signed char *pcTaskName) {
|
|
/* Run time stack overflow checking is performed if
|
|
configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook function is
|
|
called if a stack overflow is detected. */
|
|
}
|
|
|
|
|
|
void MX_FREERTOS_Init(void) {
|
|
systemdHandle = osThreadNew(systemd, NULL, &systemd_attributes);
|
|
}
|