Furi, FuriHal: remove FreeRTOS headers leaks (#3179)

* Furi: remove direct FreeRTOS timers use
* Furi: eliminate FreeRTOS headers leak. What did it cost? Everything...
* SubGhz: proper public api for protocols. Format Sources.
* Furi: slightly less redundant declarations
* Desktop: proper types in printf
* Sync API Symbols
* Furi: add timer reset and fix dolphin service, fix unit tests
* Furi: proper timer restart method naming and correct behavior in timer stopped state.

---------

Co-authored-by: hedger <hedger@nanode.su>
This commit is contained in:
あく
2023-11-01 16:24:11 +09:00
committed by GitHub
parent 7bd3bd7ea4
commit aa06328516
68 changed files with 316 additions and 472 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,41.0,,
Version,+,43.2,,
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
@@ -179,6 +179,7 @@ Header,+,lib/subghz/blocks/math.h,,
Header,+,lib/subghz/devices/cc1101_configs.h,,
Header,+,lib/subghz/devices/cc1101_int/cc1101_int_interconnect.h,,
Header,+,lib/subghz/environment.h,,
Header,+,lib/subghz/protocols/public_api.h,,
Header,+,lib/subghz/protocols/raw.h,,
Header,+,lib/subghz/receiver.h,,
Header,+,lib/subghz/registry.h,,
@@ -485,7 +486,6 @@ Function,-,_perror_r,void,"_reent*, const char*"
Function,-,_printf_r,int,"_reent*, const char*, ..."
Function,-,_putc_r,int,"_reent*, int, FILE*"
Function,-,_putc_unlocked_r,int,"_reent*, int, FILE*"
Function,-,_putchar,void,char
Function,-,_putchar_r,int,"_reent*, int"
Function,-,_putchar_unlocked_r,int,"_reent*, int"
Function,-,_putenv_r,int,"_reent*, char*"
@@ -839,8 +839,6 @@ Function,-,dprintf,int,"int, const char*, ..."
Function,-,drand48,double,
Function,-,drem,double,"double, double"
Function,-,dremf,float,"float, float"
Function,-,eTaskConfirmSleepModeStatus,eSleepModeStatus,
Function,-,eTaskGetState,eTaskState,TaskHandle_t
Function,+,elements_bold_rounded_frame,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
Function,+,elements_bubble,void,"Canvas*, uint8_t, uint8_t, uint8_t, uint8_t"
Function,+,elements_bubble_str,void,"Canvas*, uint8_t, uint8_t, const char*, Align, Align"
@@ -1536,6 +1534,7 @@ Function,+,furi_hal_vibro_on,void,_Bool
Function,-,furi_init,void,
Function,+,furi_kernel_get_tick_frequency,uint32_t,
Function,+,furi_kernel_is_irq_or_masked,_Bool,
Function,+,furi_kernel_is_running,_Bool,
Function,+,furi_kernel_lock,int32_t,
Function,+,furi_kernel_restore_lock,int32_t,int32_t
Function,+,furi_kernel_unlock,int32_t,
@@ -1646,7 +1645,6 @@ Function,+,furi_string_utf8_push,void,"FuriString*, FuriStringUnicodeValue"
Function,+,furi_string_vprintf,int,"FuriString*, const char[], va_list"
Function,+,furi_thread_alloc,FuriThread*,
Function,+,furi_thread_alloc_ex,FuriThread*,"const char*, uint32_t, FuriThreadCallback, void*"
Function,+,furi_thread_catch,void,
Function,-,furi_thread_disable_heap_trace,void,FuriThread*
Function,+,furi_thread_enable_heap_trace,void,FuriThread*
Function,+,furi_thread_enumerate,uint32_t,"FuriThreadId*, uint32_t"
@@ -1687,8 +1685,11 @@ Function,+,furi_thread_suspend,void,FuriThreadId
Function,+,furi_thread_yield,void,
Function,+,furi_timer_alloc,FuriTimer*,"FuriTimerCallback, FuriTimerType, void*"
Function,+,furi_timer_free,void,FuriTimer*
Function,+,furi_timer_get_expire_time,uint32_t,FuriTimer*
Function,+,furi_timer_is_running,uint32_t,FuriTimer*
Function,+,furi_timer_pending_callback,void,"FuriTimerPendigCallback, void*, uint32_t"
Function,+,furi_timer_restart,FuriStatus,FuriTimer*
Function,+,furi_timer_set_thread_priority,void,FuriTimerThreadPriority
Function,+,furi_timer_start,FuriStatus,"FuriTimer*, uint32_t"
Function,+,furi_timer_stop,FuriStatus,FuriTimer*
Function,-,fwrite,size_t,"const void*, size_t, size_t, FILE*"
@@ -2380,8 +2381,6 @@ Function,+,pb_read,_Bool,"pb_istream_t*, pb_byte_t*, size_t"
Function,+,pb_release,void,"const pb_msgdesc_t*, void*"
Function,+,pb_skip_field,_Bool,"pb_istream_t*, pb_wire_type_t"
Function,+,pb_write,_Bool,"pb_ostream_t*, const pb_byte_t*, size_t"
Function,-,pcTaskGetName,char*,TaskHandle_t
Function,-,pcTimerGetName,const char*,TimerHandle_t
Function,-,pclose,int,FILE*
Function,-,perror,void,const char*
Function,+,plugin_manager_alloc,PluginManager*,"const char*, uint32_t, const ElfApiInterface*"
@@ -2456,12 +2455,6 @@ Function,-,putchar_unlocked,int,int
Function,-,putenv,int,char*
Function,-,puts,int,const char*
Function,-,putw,int,"int, FILE*"
Function,-,pvPortCalloc,void*,"size_t, size_t"
Function,-,pvPortMalloc,void*,size_t
Function,-,pvTaskGetThreadLocalStoragePointer,void*,"TaskHandle_t, BaseType_t"
Function,-,pvTaskIncrementMutexHeldCount,TaskHandle_t,
Function,-,pvTimerGetTimerID,void*,const TimerHandle_t
Function,-,pxPortInitialiseStack,StackType_t*,"StackType_t*, TaskFunction_t, void*"
Function,-,qsort,void,"void*, size_t, size_t, __compar_fn_t"
Function,-,qsort_r,void,"void*, size_t, size_t, int (*)(const void*, const void*, void*), void*"
Function,-,quick_exit,void,int
@@ -2491,7 +2484,7 @@ Function,-,round,double,double
Function,+,roundf,float,float
Function,-,roundl,long double,long double
Function,+,rpc_session_close,void,RpcSession*
Function,+,rpc_session_feed,size_t,"RpcSession*, uint8_t*, size_t, TickType_t"
Function,+,rpc_session_feed,size_t,"RpcSession*, uint8_t*, size_t, uint32_t"
Function,+,rpc_session_get_available_size,size_t,RpcSession*
Function,+,rpc_session_get_owner,RpcOwner,RpcSession*
Function,+,rpc_session_open,RpcSession*,"Rpc*, RpcOwner"
@@ -3011,67 +3004,10 @@ Function,-,uECC_sign_deterministic,int,"const uint8_t*, const uint8_t*, unsigned
Function,-,uECC_valid_public_key,int,"const uint8_t*, uECC_Curve"
Function,-,uECC_verify,int,"const uint8_t*, const uint8_t*, unsigned, const uint8_t*, uECC_Curve"
Function,+,uint8_to_hex_chars,void,"const uint8_t*, uint8_t*, int"
Function,-,ulTaskGenericNotifyTake,uint32_t,"UBaseType_t, BaseType_t, TickType_t"
Function,-,ulTaskGenericNotifyValueClear,uint32_t,"TaskHandle_t, UBaseType_t, uint32_t"
Function,-,ulTaskGetIdleRunTimeCounter,uint32_t,
Function,-,ulTaskGetIdleRunTimePercent,uint32_t,
Function,-,ungetc,int,"int, FILE*"
Function,-,unsetenv,int,const char*
Function,-,usbd_poll,void,usbd_device*
Function,-,utoa,char*,"unsigned, char*, int"
Function,-,uxListRemove,UBaseType_t,ListItem_t*
Function,-,uxTaskGetNumberOfTasks,UBaseType_t,
Function,-,uxTaskGetStackHighWaterMark,UBaseType_t,TaskHandle_t
Function,-,uxTaskGetStackHighWaterMark2,uint16_t,TaskHandle_t
Function,-,uxTaskGetSystemState,UBaseType_t,"TaskStatus_t*, const UBaseType_t, uint32_t*"
Function,-,uxTaskGetTaskNumber,UBaseType_t,TaskHandle_t
Function,-,uxTaskPriorityGet,UBaseType_t,const TaskHandle_t
Function,-,uxTaskPriorityGetFromISR,UBaseType_t,const TaskHandle_t
Function,-,uxTaskResetEventItemValue,TickType_t,
Function,-,uxTimerGetReloadMode,UBaseType_t,TimerHandle_t
Function,-,uxTimerGetTimerNumber,UBaseType_t,TimerHandle_t
Function,-,vApplicationGetIdleTaskMemory,void,"StaticTask_t**, StackType_t**, uint32_t*"
Function,-,vApplicationGetTimerTaskMemory,void,"StaticTask_t**, StackType_t**, uint32_t*"
Function,-,vListInitialise,void,List_t*
Function,-,vListInitialiseItem,void,ListItem_t*
Function,-,vListInsert,void,"List_t*, ListItem_t*"
Function,-,vListInsertEnd,void,"List_t*, ListItem_t*"
Function,-,vPortDefineHeapRegions,void,const HeapRegion_t*
Function,-,vPortEndScheduler,void,
Function,+,vPortEnterCritical,void,
Function,+,vPortExitCritical,void,
Function,-,vPortFree,void,void*
Function,-,vPortGetHeapStats,void,HeapStats_t*
Function,-,vPortInitialiseBlocks,void,
Function,-,vPortSuppressTicksAndSleep,void,TickType_t
Function,-,vTaskAllocateMPURegions,void,"TaskHandle_t, const MemoryRegion_t*"
Function,-,vTaskDelay,void,const TickType_t
Function,-,vTaskDelete,void,TaskHandle_t
Function,-,vTaskEndScheduler,void,
Function,-,vTaskGenericNotifyGiveFromISR,void,"TaskHandle_t, UBaseType_t, BaseType_t*"
Function,-,vTaskGetInfo,void,"TaskHandle_t, TaskStatus_t*, BaseType_t, eTaskState"
Function,-,vTaskGetRunTimeStats,void,char*
Function,-,vTaskInternalSetTimeOutState,void,TimeOut_t*
Function,-,vTaskList,void,char*
Function,-,vTaskMissedYield,void,
Function,-,vTaskPlaceOnEventList,void,"List_t*, const TickType_t"
Function,-,vTaskPlaceOnEventListRestricted,void,"List_t*, TickType_t, const BaseType_t"
Function,-,vTaskPlaceOnUnorderedEventList,void,"List_t*, const TickType_t, const TickType_t"
Function,-,vTaskPriorityDisinheritAfterTimeout,void,"const TaskHandle_t, UBaseType_t"
Function,+,vTaskPrioritySet,void,"TaskHandle_t, UBaseType_t"
Function,-,vTaskRemoveFromUnorderedEventList,void,"ListItem_t*, const TickType_t"
Function,-,vTaskResume,void,TaskHandle_t
Function,-,vTaskSetTaskNumber,void,"TaskHandle_t, const UBaseType_t"
Function,-,vTaskSetThreadLocalStoragePointer,void,"TaskHandle_t, BaseType_t, void*"
Function,-,vTaskSetTimeOutState,void,TimeOut_t*
Function,-,vTaskStartScheduler,void,
Function,-,vTaskStepTick,void,TickType_t
Function,-,vTaskSuspend,void,TaskHandle_t
Function,-,vTaskSuspendAll,void,
Function,-,vTaskSwitchContext,void,
Function,-,vTimerSetReloadMode,void,"TimerHandle_t, const BaseType_t"
Function,-,vTimerSetTimerID,void,"TimerHandle_t, void*"
Function,-,vTimerSetTimerNumber,void,"TimerHandle_t, UBaseType_t"
Function,+,validator_is_file_alloc_init,ValidatorIsFile*,"const char*, const char*, const char*"
Function,+,validator_is_file_callback,_Bool,"const char*, FuriString*, void*"
Function,+,validator_is_file_free,void,ValidatorIsFile*
@@ -3186,43 +3122,6 @@ Function,+,widget_alloc,Widget*,
Function,+,widget_free,void,Widget*
Function,+,widget_get_view,View*,Widget*
Function,+,widget_reset,void,Widget*
Function,-,xPortGetFreeHeapSize,size_t,
Function,-,xPortGetMinimumEverFreeHeapSize,size_t,
Function,-,xPortStartScheduler,BaseType_t,
Function,-,xTaskAbortDelay,BaseType_t,TaskHandle_t
Function,-,xTaskCallApplicationTaskHook,BaseType_t,"TaskHandle_t, void*"
Function,-,xTaskCatchUpTicks,BaseType_t,TickType_t
Function,-,xTaskCheckForTimeOut,BaseType_t,"TimeOut_t*, TickType_t*"
Function,-,xTaskCreate,BaseType_t,"TaskFunction_t, const char*, const uint16_t, void*, UBaseType_t, TaskHandle_t*"
Function,-,xTaskCreateStatic,TaskHandle_t,"TaskFunction_t, const char*, const uint32_t, void*, UBaseType_t, StackType_t*, StaticTask_t*"
Function,-,xTaskDelayUntil,BaseType_t,"TickType_t*, const TickType_t"
Function,-,xTaskGenericNotify,BaseType_t,"TaskHandle_t, UBaseType_t, uint32_t, eNotifyAction, uint32_t*"
Function,-,xTaskGenericNotifyFromISR,BaseType_t,"TaskHandle_t, UBaseType_t, uint32_t, eNotifyAction, uint32_t*, BaseType_t*"
Function,-,xTaskGenericNotifyStateClear,BaseType_t,"TaskHandle_t, UBaseType_t"
Function,-,xTaskGenericNotifyWait,BaseType_t,"UBaseType_t, uint32_t, uint32_t, uint32_t*, TickType_t"
Function,-,xTaskGetCurrentTaskHandle,TaskHandle_t,
Function,+,xTaskGetHandle,TaskHandle_t,const char*
Function,-,xTaskGetIdleTaskHandle,TaskHandle_t,
Function,+,xTaskGetSchedulerState,BaseType_t,
Function,+,xTaskGetTickCount,TickType_t,
Function,-,xTaskGetTickCountFromISR,TickType_t,
Function,-,xTaskIncrementTick,BaseType_t,
Function,-,xTaskPriorityDisinherit,BaseType_t,const TaskHandle_t
Function,-,xTaskPriorityInherit,BaseType_t,const TaskHandle_t
Function,-,xTaskRemoveFromEventList,BaseType_t,const List_t*
Function,-,xTaskResumeAll,BaseType_t,
Function,-,xTaskResumeFromISR,BaseType_t,TaskHandle_t
Function,-,xTimerCreate,TimerHandle_t,"const char*, const TickType_t, const BaseType_t, void*, TimerCallbackFunction_t"
Function,-,xTimerCreateStatic,TimerHandle_t,"const char*, const TickType_t, const BaseType_t, void*, TimerCallbackFunction_t, StaticTimer_t*"
Function,-,xTimerCreateTimerTask,BaseType_t,
Function,-,xTimerGenericCommand,BaseType_t,"TimerHandle_t, const BaseType_t, const TickType_t, BaseType_t*, const TickType_t"
Function,-,xTimerGetExpiryTime,TickType_t,TimerHandle_t
Function,-,xTimerGetPeriod,TickType_t,TimerHandle_t
Function,-,xTimerGetReloadMode,BaseType_t,TimerHandle_t
Function,-,xTimerGetTimerDaemonTaskHandle,TaskHandle_t,
Function,-,xTimerIsTimerActive,BaseType_t,TimerHandle_t
Function,-,xTimerPendFunctionCall,BaseType_t,"PendedFunction_t, void*, uint32_t, TickType_t"
Function,-,xTimerPendFunctionCallFromISR,BaseType_t,"PendedFunction_t, void*, uint32_t, BaseType_t*"
Function,-,y0,double,double
Function,-,y0f,float,float
Function,-,y1,double,double
1 entry status name type params
2 Version + 41.0 43.2
3 Header + applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h
4 Header + applications/services/bt/bt_service/bt.h
5 Header + applications/services/cli/cli.h
179 Header + lib/subghz/devices/cc1101_configs.h
180 Header + lib/subghz/devices/cc1101_int/cc1101_int_interconnect.h
181 Header + lib/subghz/environment.h
182 Header + lib/subghz/protocols/public_api.h
183 Header + lib/subghz/protocols/raw.h
184 Header + lib/subghz/receiver.h
185 Header + lib/subghz/registry.h
486 Function - _printf_r int _reent*, const char*, ...
487 Function - _putc_r int _reent*, int, FILE*
488 Function - _putc_unlocked_r int _reent*, int, FILE*
Function - _putchar void char
489 Function - _putchar_r int _reent*, int
490 Function - _putchar_unlocked_r int _reent*, int
491 Function - _putenv_r int _reent*, char*
839 Function - drand48 double
840 Function - drem double double, double
841 Function - dremf float float, float
Function - eTaskConfirmSleepModeStatus eSleepModeStatus
Function - eTaskGetState eTaskState TaskHandle_t
842 Function + elements_bold_rounded_frame void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t
843 Function + elements_bubble void Canvas*, uint8_t, uint8_t, uint8_t, uint8_t
844 Function + elements_bubble_str void Canvas*, uint8_t, uint8_t, const char*, Align, Align
1534 Function - furi_init void
1535 Function + furi_kernel_get_tick_frequency uint32_t
1536 Function + furi_kernel_is_irq_or_masked _Bool
1537 Function + furi_kernel_is_running _Bool
1538 Function + furi_kernel_lock int32_t
1539 Function + furi_kernel_restore_lock int32_t int32_t
1540 Function + furi_kernel_unlock int32_t
1645 Function + furi_string_vprintf int FuriString*, const char[], va_list
1646 Function + furi_thread_alloc FuriThread*
1647 Function + furi_thread_alloc_ex FuriThread* const char*, uint32_t, FuriThreadCallback, void*
Function + furi_thread_catch void
1648 Function - furi_thread_disable_heap_trace void FuriThread*
1649 Function + furi_thread_enable_heap_trace void FuriThread*
1650 Function + furi_thread_enumerate uint32_t FuriThreadId*, uint32_t
1685 Function + furi_thread_yield void
1686 Function + furi_timer_alloc FuriTimer* FuriTimerCallback, FuriTimerType, void*
1687 Function + furi_timer_free void FuriTimer*
1688 Function + furi_timer_get_expire_time uint32_t FuriTimer*
1689 Function + furi_timer_is_running uint32_t FuriTimer*
1690 Function + furi_timer_pending_callback void FuriTimerPendigCallback, void*, uint32_t
1691 Function + furi_timer_restart FuriStatus FuriTimer*
1692 Function + furi_timer_set_thread_priority void FuriTimerThreadPriority
1693 Function + furi_timer_start FuriStatus FuriTimer*, uint32_t
1694 Function + furi_timer_stop FuriStatus FuriTimer*
1695 Function - fwrite size_t const void*, size_t, size_t, FILE*
2381 Function + pb_release void const pb_msgdesc_t*, void*
2382 Function + pb_skip_field _Bool pb_istream_t*, pb_wire_type_t
2383 Function + pb_write _Bool pb_ostream_t*, const pb_byte_t*, size_t
Function - pcTaskGetName char* TaskHandle_t
Function - pcTimerGetName const char* TimerHandle_t
2384 Function - pclose int FILE*
2385 Function - perror void const char*
2386 Function + plugin_manager_alloc PluginManager* const char*, uint32_t, const ElfApiInterface*
2455 Function - putenv int char*
2456 Function - puts int const char*
2457 Function - putw int int, FILE*
Function - pvPortCalloc void* size_t, size_t
Function - pvPortMalloc void* size_t
Function - pvTaskGetThreadLocalStoragePointer void* TaskHandle_t, BaseType_t
Function - pvTaskIncrementMutexHeldCount TaskHandle_t
Function - pvTimerGetTimerID void* const TimerHandle_t
Function - pxPortInitialiseStack StackType_t* StackType_t*, TaskFunction_t, void*
2458 Function - qsort void void*, size_t, size_t, __compar_fn_t
2459 Function - qsort_r void void*, size_t, size_t, int (*)(const void*, const void*, void*), void*
2460 Function - quick_exit void int
2484 Function + roundf float float
2485 Function - roundl long double long double
2486 Function + rpc_session_close void RpcSession*
2487 Function + rpc_session_feed size_t RpcSession*, uint8_t*, size_t, TickType_t RpcSession*, uint8_t*, size_t, uint32_t
2488 Function + rpc_session_get_available_size size_t RpcSession*
2489 Function + rpc_session_get_owner RpcOwner RpcSession*
2490 Function + rpc_session_open RpcSession* Rpc*, RpcOwner
3004 Function - uECC_valid_public_key int const uint8_t*, uECC_Curve
3005 Function - uECC_verify int const uint8_t*, const uint8_t*, unsigned, const uint8_t*, uECC_Curve
3006 Function + uint8_to_hex_chars void const uint8_t*, uint8_t*, int
Function - ulTaskGenericNotifyTake uint32_t UBaseType_t, BaseType_t, TickType_t
Function - ulTaskGenericNotifyValueClear uint32_t TaskHandle_t, UBaseType_t, uint32_t
Function - ulTaskGetIdleRunTimeCounter uint32_t
Function - ulTaskGetIdleRunTimePercent uint32_t
3007 Function - ungetc int int, FILE*
3008 Function - unsetenv int const char*
3009 Function - usbd_poll void usbd_device*
3010 Function - utoa char* unsigned, char*, int
Function - uxListRemove UBaseType_t ListItem_t*
Function - uxTaskGetNumberOfTasks UBaseType_t
Function - uxTaskGetStackHighWaterMark UBaseType_t TaskHandle_t
Function - uxTaskGetStackHighWaterMark2 uint16_t TaskHandle_t
Function - uxTaskGetSystemState UBaseType_t TaskStatus_t*, const UBaseType_t, uint32_t*
Function - uxTaskGetTaskNumber UBaseType_t TaskHandle_t
Function - uxTaskPriorityGet UBaseType_t const TaskHandle_t
Function - uxTaskPriorityGetFromISR UBaseType_t const TaskHandle_t
Function - uxTaskResetEventItemValue TickType_t
Function - uxTimerGetReloadMode UBaseType_t TimerHandle_t
Function - uxTimerGetTimerNumber UBaseType_t TimerHandle_t
Function - vApplicationGetIdleTaskMemory void StaticTask_t**, StackType_t**, uint32_t*
Function - vApplicationGetTimerTaskMemory void StaticTask_t**, StackType_t**, uint32_t*
Function - vListInitialise void List_t*
Function - vListInitialiseItem void ListItem_t*
Function - vListInsert void List_t*, ListItem_t*
Function - vListInsertEnd void List_t*, ListItem_t*
Function - vPortDefineHeapRegions void const HeapRegion_t*
Function - vPortEndScheduler void
Function + vPortEnterCritical void
Function + vPortExitCritical void
Function - vPortFree void void*
Function - vPortGetHeapStats void HeapStats_t*
Function - vPortInitialiseBlocks void
Function - vPortSuppressTicksAndSleep void TickType_t
Function - vTaskAllocateMPURegions void TaskHandle_t, const MemoryRegion_t*
Function - vTaskDelay void const TickType_t
Function - vTaskDelete void TaskHandle_t
Function - vTaskEndScheduler void
Function - vTaskGenericNotifyGiveFromISR void TaskHandle_t, UBaseType_t, BaseType_t*
Function - vTaskGetInfo void TaskHandle_t, TaskStatus_t*, BaseType_t, eTaskState
Function - vTaskGetRunTimeStats void char*
Function - vTaskInternalSetTimeOutState void TimeOut_t*
Function - vTaskList void char*
Function - vTaskMissedYield void
Function - vTaskPlaceOnEventList void List_t*, const TickType_t
Function - vTaskPlaceOnEventListRestricted void List_t*, TickType_t, const BaseType_t
Function - vTaskPlaceOnUnorderedEventList void List_t*, const TickType_t, const TickType_t
Function - vTaskPriorityDisinheritAfterTimeout void const TaskHandle_t, UBaseType_t
Function + vTaskPrioritySet void TaskHandle_t, UBaseType_t
Function - vTaskRemoveFromUnorderedEventList void ListItem_t*, const TickType_t
Function - vTaskResume void TaskHandle_t
Function - vTaskSetTaskNumber void TaskHandle_t, const UBaseType_t
Function - vTaskSetThreadLocalStoragePointer void TaskHandle_t, BaseType_t, void*
Function - vTaskSetTimeOutState void TimeOut_t*
Function - vTaskStartScheduler void
Function - vTaskStepTick void TickType_t
Function - vTaskSuspend void TaskHandle_t
Function - vTaskSuspendAll void
Function - vTaskSwitchContext void
Function - vTimerSetReloadMode void TimerHandle_t, const BaseType_t
Function - vTimerSetTimerID void TimerHandle_t, void*
Function - vTimerSetTimerNumber void TimerHandle_t, UBaseType_t
3011 Function + validator_is_file_alloc_init ValidatorIsFile* const char*, const char*, const char*
3012 Function + validator_is_file_callback _Bool const char*, FuriString*, void*
3013 Function + validator_is_file_free void ValidatorIsFile*
3122 Function + widget_free void Widget*
3123 Function + widget_get_view View* Widget*
3124 Function + widget_reset void Widget*
Function - xPortGetFreeHeapSize size_t
Function - xPortGetMinimumEverFreeHeapSize size_t
Function - xPortStartScheduler BaseType_t
Function - xTaskAbortDelay BaseType_t TaskHandle_t
Function - xTaskCallApplicationTaskHook BaseType_t TaskHandle_t, void*
Function - xTaskCatchUpTicks BaseType_t TickType_t
Function - xTaskCheckForTimeOut BaseType_t TimeOut_t*, TickType_t*
Function - xTaskCreate BaseType_t TaskFunction_t, const char*, const uint16_t, void*, UBaseType_t, TaskHandle_t*
Function - xTaskCreateStatic TaskHandle_t TaskFunction_t, const char*, const uint32_t, void*, UBaseType_t, StackType_t*, StaticTask_t*
Function - xTaskDelayUntil BaseType_t TickType_t*, const TickType_t
Function - xTaskGenericNotify BaseType_t TaskHandle_t, UBaseType_t, uint32_t, eNotifyAction, uint32_t*
Function - xTaskGenericNotifyFromISR BaseType_t TaskHandle_t, UBaseType_t, uint32_t, eNotifyAction, uint32_t*, BaseType_t*
Function - xTaskGenericNotifyStateClear BaseType_t TaskHandle_t, UBaseType_t
Function - xTaskGenericNotifyWait BaseType_t UBaseType_t, uint32_t, uint32_t, uint32_t*, TickType_t
Function - xTaskGetCurrentTaskHandle TaskHandle_t
Function + xTaskGetHandle TaskHandle_t const char*
Function - xTaskGetIdleTaskHandle TaskHandle_t
Function + xTaskGetSchedulerState BaseType_t
Function + xTaskGetTickCount TickType_t
Function - xTaskGetTickCountFromISR TickType_t
Function - xTaskIncrementTick BaseType_t
Function - xTaskPriorityDisinherit BaseType_t const TaskHandle_t
Function - xTaskPriorityInherit BaseType_t const TaskHandle_t
Function - xTaskRemoveFromEventList BaseType_t const List_t*
Function - xTaskResumeAll BaseType_t
Function - xTaskResumeFromISR BaseType_t TaskHandle_t
Function - xTimerCreate TimerHandle_t const char*, const TickType_t, const BaseType_t, void*, TimerCallbackFunction_t
Function - xTimerCreateStatic TimerHandle_t const char*, const TickType_t, const BaseType_t, void*, TimerCallbackFunction_t, StaticTimer_t*
Function - xTimerCreateTimerTask BaseType_t
Function - xTimerGenericCommand BaseType_t TimerHandle_t, const BaseType_t, const TickType_t, BaseType_t*, const TickType_t
Function - xTimerGetExpiryTime TickType_t TimerHandle_t
Function - xTimerGetPeriod TickType_t TimerHandle_t
Function - xTimerGetReloadMode BaseType_t TimerHandle_t
Function - xTimerGetTimerDaemonTaskHandle TaskHandle_t
Function - xTimerIsTimerActive BaseType_t TimerHandle_t
Function - xTimerPendFunctionCall BaseType_t PendedFunction_t, void*, uint32_t, TickType_t
Function - xTimerPendFunctionCallFromISR BaseType_t PendedFunction_t, void*, uint32_t, BaseType_t*
3125 Function - y0 double double
3126 Function - y0f float float
3127 Function - y1 double double

View File

@@ -532,8 +532,6 @@ void gap_thread_stop() {
// Free resources
furi_mutex_free(gap->state_mutex);
furi_message_queue_free(gap->command_queue);
furi_timer_stop(gap->advertise_timer);
while(xTimerIsTimerActive(gap->advertise_timer) == pdTRUE) furi_delay_tick(1);
furi_timer_free(gap->advertise_timer);
free(gap);
gap = NULL;

View File

@@ -11,6 +11,9 @@
#include <hsem_map.h>
#include <FreeRTOS.h>
#include <task.h>
#define TAG "FuriHalFlash"
#define FURI_HAL_CRITICAL_MSG "Critical flash operation fail"

View File

@@ -10,6 +10,9 @@
#include <furi.h>
#include <FreeRTOS.h>
#include <task.h>
#define TAG "FuriHalOs"
#define FURI_HAL_IDLE_TIMER_CLK_HZ 32768

View File

@@ -459,10 +459,10 @@ void furi_hal_power_disable_external_3_3v() {
}
void furi_hal_power_suppress_charge_enter() {
vTaskSuspendAll();
FURI_CRITICAL_ENTER();
bool disable_charging = furi_hal_power.suppress_charge == 0;
furi_hal_power.suppress_charge++;
xTaskResumeAll();
FURI_CRITICAL_EXIT();
if(disable_charging) {
furi_hal_i2c_acquire(&furi_hal_i2c_handle_power);
@@ -472,10 +472,10 @@ void furi_hal_power_suppress_charge_enter() {
}
void furi_hal_power_suppress_charge_exit() {
vTaskSuspendAll();
FURI_CRITICAL_ENTER();
furi_hal_power.suppress_charge--;
bool enable_charging = furi_hal_power.suppress_charge == 0;
xTaskResumeAll();
FURI_CRITICAL_EXIT();
if(enable_charging) {
furi_hal_i2c_acquire(&furi_hal_i2c_handle_power);

View File

@@ -200,7 +200,7 @@ bool furi_hal_spi_bus_trx_dma(
furi_assert(size > 0);
// If scheduler is not running, use blocking mode
if(xTaskGetSchedulerState() != taskSCHEDULER_RUNNING) {
if(furi_kernel_is_running()) {
return furi_hal_spi_bus_trx(handle, tx_buffer, rx_buffer, size, timeout_ms);
}

View File

@@ -3,13 +3,14 @@
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
#include <stdint.h>
#pragma GCC diagnostic ignored "-Wredundant-decls"
extern uint32_t SystemCoreClock;
#endif
#ifndef CMSIS_device_header
#define CMSIS_device_header "stm32wbxx.h"
#endif /* CMSIS_device_header */
#include CMSIS_device_header
#define configENABLE_FPU 1
#define configENABLE_MPU 0

View File

@@ -0,0 +1,3 @@
#pragma once
#define FURI_CONFIG_THREAD_MAX_PRIORITIES (32)

View File

@@ -2,7 +2,6 @@
#include <furi_hal.h>
#include <flipper.h>
#include <alt_boot.h>
#include <semphr.h>
#include <update_util/update_operation.h>
#define TAG "Main"