Furi: core refactoring and CMSIS removal part 2 (#1410)

* Furi: rename and move core
* Furi: drop CMSIS_OS header and unused api, partially refactor and cleanup the rest
* Furi: CMSIS_OS drop and refactoring.
* Furi: refactoring, remove cmsis legacy
* Furi: fix incorrect assert on queue deallocation, cleanup timer
* Furi: improve delay api, get rid of floats
* hal: dropped furi_hal_crc
* Furi: move DWT based delay to cortex HAL
* Furi: update core documentation

Co-authored-by: hedger <hedger@nanode.su>
This commit is contained in:
あく
2022-07-20 13:56:33 +03:00
committed by GitHub
parent f9c2287ea7
commit e3c7201a20
264 changed files with 2569 additions and 3883 deletions

View File

@@ -7,7 +7,7 @@ struct Popup {
void* context;
PopupCallback callback;
osTimerId_t timer;
FuriTimer* timer;
uint32_t timer_period_in_ms;
bool timer_enabled;
};
@@ -93,10 +93,11 @@ static bool popup_view_input_callback(InputEvent* event, void* context) {
void popup_start_timer(void* context) {
Popup* popup = context;
if(popup->timer_enabled) {
uint32_t timer_period = popup->timer_period_in_ms / (1000.0f / osKernelGetTickFreq());
uint32_t timer_period =
popup->timer_period_in_ms / (1000.0f / furi_kernel_get_tick_frequency());
if(timer_period == 0) timer_period = 1;
if(osTimerStart(popup->timer, timer_period) != osOK) {
if(furi_timer_start(popup->timer, timer_period) != FuriStatusOk) {
furi_assert(0);
};
}
@@ -104,13 +105,13 @@ void popup_start_timer(void* context) {
void popup_stop_timer(void* context) {
Popup* popup = context;
osTimerStop(popup->timer);
furi_timer_stop(popup->timer);
}
Popup* popup_alloc() {
Popup* popup = malloc(sizeof(Popup));
popup->view = view_alloc();
popup->timer = osTimerNew(popup_timer_callback, osTimerOnce, popup, NULL);
popup->timer = furi_timer_alloc(popup_timer_callback, FuriTimerTypeOnce, popup);
furi_assert(popup->timer);
popup->timer_period_in_ms = 1000;
popup->timer_enabled = false;
@@ -146,7 +147,7 @@ Popup* popup_alloc() {
void popup_free(Popup* popup) {
furi_assert(popup);
osTimerDelete(popup->timer);
furi_timer_free(popup->timer);
view_free(popup->view);
free(popup);
}