1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

FuriHal: UART refactoring (#3211)

* FuriHal: UART refactoring
* ApiSymbols: add furi_record_destroy
* FuriHal: cleanup serial API, add logging configuration in RTC
* FuriHal: hide private part in _i header. Toolbox: cleanup value index. SystemSettings: logging device and baudrate.
* FuriHal: RTC logging method documentation
* Synchronize API Symbols
* Furi: mark HEAP_PRINT_DEBUG as broken
* FuriHal: furi_hal_serial, add custom IRQ func
* Fix PR review issues
* FuriHal: UART add reception DMA (#3220)
* FuriHal: add DMA serial rx mode
* usb_uart_bridge: switch to working with DMA
* Sync api symbol versions
* FuriHal: update serial docs and api
* FuriHal: Selial added similar API for simple reception mode as with DMA
* FuriHal: Update API target H18
* API: ver API H7
* FuriHal: Serial error processing
* FuriHal: fix furi_hal_serial set baudrate
* Sync api symbols
* FuriHal: cleanup serial isr and various flag handling procedures
* FuriHal: cleanup and simplify serial API
* Debug: update UART Echo serial related flags
* FuriHal: update serial API symbols naming
* FuriHalSerial: various improvements and PR review fixes
* FuriHal: proper ISR function signatures

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: SkorP <skorpionm@yandex.ru>
Co-authored-by: Skorpionm <85568270+Skorpionm@users.noreply.github.com>
This commit is contained in:
あく
2024-01-16 08:09:37 +09:00
committed by GitHub
parent d73d007797
commit fc043da9c6
37 changed files with 1966 additions and 759 deletions

View File

@@ -1,5 +1,5 @@
entry,status,name,type,params
Version,+,50.1,,
Version,+,51.0,,
Header,+,applications/services/bt/bt_service/bt.h,,
Header,+,applications/services/cli/cli.h,,
Header,+,applications/services/cli/cli_vcp.h,,
@@ -160,7 +160,6 @@ Header,+,targets/f18/furi_hal/furi_hal_spi_config.h,,
Header,+,targets/f18/furi_hal/furi_hal_target_hw.h,,
Header,+,targets/f7/furi_hal/furi_hal_bus.h,,
Header,+,targets/f7/furi_hal/furi_hal_clock.h,,
Header,+,targets/f7/furi_hal/furi_hal_console.h,,
Header,+,targets/f7/furi_hal/furi_hal_dma.h,,
Header,+,targets/f7/furi_hal/furi_hal_flash.h,,
Header,+,targets/f7/furi_hal/furi_hal_gpio.h,,
@@ -170,8 +169,11 @@ Header,+,targets/f7/furi_hal/furi_hal_idle_timer.h,,
Header,+,targets/f7/furi_hal/furi_hal_interrupt.h,,
Header,+,targets/f7/furi_hal/furi_hal_os.h,,
Header,+,targets/f7/furi_hal/furi_hal_pwm.h,,
Header,+,targets/f7/furi_hal/furi_hal_rtc.h,,
Header,+,targets/f7/furi_hal/furi_hal_serial.h,,
Header,+,targets/f7/furi_hal/furi_hal_serial_control.h,,
Header,+,targets/f7/furi_hal/furi_hal_serial_types.h,,
Header,+,targets/f7/furi_hal/furi_hal_spi_types.h,,
Header,+,targets/f7/furi_hal/furi_hal_uart.h,,
Header,+,targets/f7/furi_hal/furi_hal_usb_cdc.h,,
Header,+,targets/f7/platform_specific/intrinsic_export.h,,
Header,+,targets/f7/platform_specific/math_wrapper.h,,
@@ -190,7 +192,6 @@ Header,+,targets/furi_hal_include/furi_hal_mpu.h,,
Header,+,targets/furi_hal_include/furi_hal_power.h,,
Header,+,targets/furi_hal_include/furi_hal_random.h,,
Header,+,targets/furi_hal_include/furi_hal_region.h,,
Header,+,targets/furi_hal_include/furi_hal_rtc.h,,
Header,+,targets/furi_hal_include/furi_hal_sd.h,,
Header,+,targets/furi_hal_include/furi_hal_speaker.h,,
Header,+,targets/furi_hal_include/furi_hal_spi.h,,
@@ -1057,14 +1058,6 @@ Function,-,furi_hal_clock_switch_hse2hsi,void,
Function,-,furi_hal_clock_switch_hse2pll,_Bool,
Function,-,furi_hal_clock_switch_hsi2hse,void,
Function,-,furi_hal_clock_switch_pll2hse,_Bool,
Function,+,furi_hal_console_disable,void,
Function,+,furi_hal_console_enable,void,
Function,+,furi_hal_console_init,void,
Function,+,furi_hal_console_printf,void,"const char[], ..."
Function,+,furi_hal_console_puts,void,const char*
Function,+,furi_hal_console_set_tx_callback,void,"FuriHalConsoleTxCallback, void*"
Function,+,furi_hal_console_tx,void,"const uint8_t*, size_t"
Function,+,furi_hal_console_tx_with_new_line,void,"const uint8_t*, size_t"
Function,+,furi_hal_cortex_comp_enable,void,"FuriHalCortexComp, FuriHalCortexCompFunction, uint32_t, uint32_t, FuriHalCortexCompSize"
Function,+,furi_hal_cortex_comp_reset,void,FuriHalCortexComp
Function,+,furi_hal_cortex_delay_us,void,uint32_t
@@ -1239,6 +1232,8 @@ Function,+,furi_hal_rtc_get_heap_track_mode,FuriHalRtcHeapTrackMode,
Function,+,furi_hal_rtc_get_locale_dateformat,FuriHalRtcLocaleDateFormat,
Function,+,furi_hal_rtc_get_locale_timeformat,FuriHalRtcLocaleTimeFormat,
Function,+,furi_hal_rtc_get_locale_units,FuriHalRtcLocaleUnits,
Function,+,furi_hal_rtc_get_log_baud_rate,FuriHalRtcLogBaudRate,
Function,+,furi_hal_rtc_get_log_device,FuriHalRtcLogDevice,
Function,+,furi_hal_rtc_get_log_level,uint8_t,
Function,+,furi_hal_rtc_get_pin_fails,uint32_t,
Function,+,furi_hal_rtc_get_register,uint32_t,FuriHalRtcRegister
@@ -1257,6 +1252,8 @@ Function,+,furi_hal_rtc_set_heap_track_mode,void,FuriHalRtcHeapTrackMode
Function,+,furi_hal_rtc_set_locale_dateformat,void,FuriHalRtcLocaleDateFormat
Function,+,furi_hal_rtc_set_locale_timeformat,void,FuriHalRtcLocaleTimeFormat
Function,+,furi_hal_rtc_set_locale_units,void,FuriHalRtcLocaleUnits
Function,+,furi_hal_rtc_set_log_baud_rate,void,FuriHalRtcLogBaudRate
Function,+,furi_hal_rtc_set_log_device,void,FuriHalRtcLogDevice
Function,+,furi_hal_rtc_set_log_level,void,uint8_t
Function,+,furi_hal_rtc_set_pin_fails,void,uint32_t
Function,+,furi_hal_rtc_set_register,void,"FuriHalRtcRegister, uint32_t"
@@ -1271,6 +1268,26 @@ Function,+,furi_hal_sd_max_mount_retry_count,uint8_t,
Function,+,furi_hal_sd_presence_init,void,
Function,+,furi_hal_sd_read_blocks,FuriStatus,"uint32_t*, uint32_t, uint32_t"
Function,+,furi_hal_sd_write_blocks,FuriStatus,"const uint32_t*, uint32_t, uint32_t"
Function,+,furi_hal_serial_control_acquire,FuriHalSerialHandle*,FuriHalSerialId
Function,+,furi_hal_serial_control_deinit,void,
Function,+,furi_hal_serial_control_init,void,
Function,+,furi_hal_serial_control_release,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_control_resume,void,
Function,+,furi_hal_serial_control_set_logging_config,void,"FuriHalSerialId, uint32_t"
Function,+,furi_hal_serial_control_suspend,void,
Function,+,furi_hal_serial_deinit,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_dma_rx,size_t,"FuriHalSerialHandle*, uint8_t*, size_t"
Function,+,furi_hal_serial_dma_rx_start,void,"FuriHalSerialHandle*, FuriHalSerialDmaRxCallback, void*, _Bool"
Function,+,furi_hal_serial_dma_rx_stop,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_init,void,"FuriHalSerialHandle*, uint32_t"
Function,+,furi_hal_serial_resume,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_async_rx,uint8_t,FuriHalSerialHandle*
Function,+,furi_hal_serial_async_rx_start,void,"FuriHalSerialHandle*, FuriHalSerialAsyncRxCallback, void*, _Bool"
Function,+,furi_hal_serial_async_rx_stop,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_set_br,void,"FuriHalSerialHandle*, uint32_t"
Function,+,furi_hal_serial_suspend,void,FuriHalSerialHandle*
Function,+,furi_hal_serial_tx,void,"FuriHalSerialHandle*, const uint8_t*, size_t"
Function,+,furi_hal_serial_tx_wait_complete,void,FuriHalSerialHandle*
Function,+,furi_hal_speaker_acquire,_Bool,uint32_t
Function,-,furi_hal_speaker_deinit,void,
Function,-,furi_hal_speaker_init,void,
@@ -1294,13 +1311,6 @@ Function,-,furi_hal_spi_config_init_early,void,
Function,-,furi_hal_spi_dma_init,void,
Function,+,furi_hal_spi_release,void,FuriHalSpiBusHandle*
Function,+,furi_hal_switch,void,void*
Function,+,furi_hal_uart_deinit,void,FuriHalUartId
Function,+,furi_hal_uart_init,void,"FuriHalUartId, uint32_t"
Function,+,furi_hal_uart_resume,void,FuriHalUartId
Function,+,furi_hal_uart_set_br,void,"FuriHalUartId, uint32_t"
Function,+,furi_hal_uart_set_irq_cb,void,"FuriHalUartId, void (*)(UartIrqEvent, uint8_t, void*), void*"
Function,+,furi_hal_uart_suspend,void,FuriHalUartId
Function,+,furi_hal_uart_tx,void,"FuriHalUartId, uint8_t*, size_t"
Function,+,furi_hal_usb_disable,void,
Function,+,furi_hal_usb_enable,void,
Function,+,furi_hal_usb_get_config,FuriHalUsbInterface*,
@@ -1346,15 +1356,17 @@ 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,
Function,+,furi_log_add_handler,_Bool,FuriLogHandler
Function,+,furi_log_get_level,FuriLogLevel,
Function,-,furi_log_init,void,
Function,+,furi_log_level_from_string,_Bool,"const char*, FuriLogLevel*"
Function,+,furi_log_level_to_string,_Bool,"FuriLogLevel, const char**"
Function,+,furi_log_print_format,void,"FuriLogLevel, const char*, const char*, ..."
Function,+,furi_log_print_raw_format,void,"FuriLogLevel, const char*, ..."
Function,+,furi_log_puts,void,const char*
Function,+,furi_log_remove_handler,_Bool,FuriLogHandler
Function,+,furi_log_set_level,void,FuriLogLevel
Function,-,furi_log_set_puts,void,FuriLogPuts
Function,-,furi_log_set_timestamp,void,FuriLogTimestamp
Function,+,furi_log_tx,void,"const uint8_t*, size_t"
Function,+,furi_message_queue_alloc,FuriMessageQueue*,"uint32_t, uint32_t"
Function,+,furi_message_queue_free,void,FuriMessageQueue*
Function,+,furi_message_queue_get,FuriStatus,"FuriMessageQueue*, void*, uint32_t"
@@ -2418,10 +2430,10 @@ Function,-,utoa,char*,"unsigned, char*, int"
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*
Function,+,value_index_bool,uint8_t,"const _Bool, const _Bool[], uint8_t"
Function,+,value_index_float,uint8_t,"const float, const float[], uint8_t"
Function,+,value_index_int32,uint8_t,"const int32_t, const int32_t[], uint8_t"
Function,+,value_index_uint32,uint8_t,"const uint32_t, const uint32_t[], uint8_t"
Function,+,value_index_bool,size_t,"const _Bool, const _Bool[], size_t"
Function,+,value_index_float,size_t,"const float, const float[], size_t"
Function,+,value_index_int32,size_t,"const int32_t, const int32_t[], size_t"
Function,+,value_index_uint32,size_t,"const uint32_t, const uint32_t[], size_t"
Function,+,variable_item_get_context,void*,VariableItem*
Function,+,variable_item_get_current_value_index,uint8_t,VariableItem*
Function,+,variable_item_list_add,VariableItem*,"VariableItemList*, const char*, uint8_t, VariableItemChangeCallback, void*"
1 entry status name type params
2 Version + 50.1 51.0
3 Header + applications/services/bt/bt_service/bt.h
4 Header + applications/services/cli/cli.h
5 Header + applications/services/cli/cli_vcp.h
160 Header + targets/f18/furi_hal/furi_hal_target_hw.h
161 Header + targets/f7/furi_hal/furi_hal_bus.h
162 Header + targets/f7/furi_hal/furi_hal_clock.h
Header + targets/f7/furi_hal/furi_hal_console.h
163 Header + targets/f7/furi_hal/furi_hal_dma.h
164 Header + targets/f7/furi_hal/furi_hal_flash.h
165 Header + targets/f7/furi_hal/furi_hal_gpio.h
169 Header + targets/f7/furi_hal/furi_hal_interrupt.h
170 Header + targets/f7/furi_hal/furi_hal_os.h
171 Header + targets/f7/furi_hal/furi_hal_pwm.h
172 Header + targets/f7/furi_hal/furi_hal_rtc.h
173 Header + targets/f7/furi_hal/furi_hal_serial.h
174 Header + targets/f7/furi_hal/furi_hal_serial_control.h
175 Header + targets/f7/furi_hal/furi_hal_serial_types.h
176 Header + targets/f7/furi_hal/furi_hal_spi_types.h
Header + targets/f7/furi_hal/furi_hal_uart.h
177 Header + targets/f7/furi_hal/furi_hal_usb_cdc.h
178 Header + targets/f7/platform_specific/intrinsic_export.h
179 Header + targets/f7/platform_specific/math_wrapper.h
192 Header + targets/furi_hal_include/furi_hal_power.h
193 Header + targets/furi_hal_include/furi_hal_random.h
194 Header + targets/furi_hal_include/furi_hal_region.h
Header + targets/furi_hal_include/furi_hal_rtc.h
195 Header + targets/furi_hal_include/furi_hal_sd.h
196 Header + targets/furi_hal_include/furi_hal_speaker.h
197 Header + targets/furi_hal_include/furi_hal_spi.h
1058 Function - furi_hal_clock_switch_hse2pll _Bool
1059 Function - furi_hal_clock_switch_hsi2hse void
1060 Function - furi_hal_clock_switch_pll2hse _Bool
Function + furi_hal_console_disable void
Function + furi_hal_console_enable void
Function + furi_hal_console_init void
Function + furi_hal_console_printf void const char[], ...
Function + furi_hal_console_puts void const char*
Function + furi_hal_console_set_tx_callback void FuriHalConsoleTxCallback, void*
Function + furi_hal_console_tx void const uint8_t*, size_t
Function + furi_hal_console_tx_with_new_line void const uint8_t*, size_t
1061 Function + furi_hal_cortex_comp_enable void FuriHalCortexComp, FuriHalCortexCompFunction, uint32_t, uint32_t, FuriHalCortexCompSize
1062 Function + furi_hal_cortex_comp_reset void FuriHalCortexComp
1063 Function + furi_hal_cortex_delay_us void uint32_t
1232 Function + furi_hal_rtc_get_locale_dateformat FuriHalRtcLocaleDateFormat
1233 Function + furi_hal_rtc_get_locale_timeformat FuriHalRtcLocaleTimeFormat
1234 Function + furi_hal_rtc_get_locale_units FuriHalRtcLocaleUnits
1235 Function + furi_hal_rtc_get_log_baud_rate FuriHalRtcLogBaudRate
1236 Function + furi_hal_rtc_get_log_device FuriHalRtcLogDevice
1237 Function + furi_hal_rtc_get_log_level uint8_t
1238 Function + furi_hal_rtc_get_pin_fails uint32_t
1239 Function + furi_hal_rtc_get_register uint32_t FuriHalRtcRegister
1252 Function + furi_hal_rtc_set_locale_dateformat void FuriHalRtcLocaleDateFormat
1253 Function + furi_hal_rtc_set_locale_timeformat void FuriHalRtcLocaleTimeFormat
1254 Function + furi_hal_rtc_set_locale_units void FuriHalRtcLocaleUnits
1255 Function + furi_hal_rtc_set_log_baud_rate void FuriHalRtcLogBaudRate
1256 Function + furi_hal_rtc_set_log_device void FuriHalRtcLogDevice
1257 Function + furi_hal_rtc_set_log_level void uint8_t
1258 Function + furi_hal_rtc_set_pin_fails void uint32_t
1259 Function + furi_hal_rtc_set_register void FuriHalRtcRegister, uint32_t
1268 Function + furi_hal_sd_presence_init void
1269 Function + furi_hal_sd_read_blocks FuriStatus uint32_t*, uint32_t, uint32_t
1270 Function + furi_hal_sd_write_blocks FuriStatus const uint32_t*, uint32_t, uint32_t
1271 Function + furi_hal_serial_control_acquire FuriHalSerialHandle* FuriHalSerialId
1272 Function + furi_hal_serial_control_deinit void
1273 Function + furi_hal_serial_control_init void
1274 Function + furi_hal_serial_control_release void FuriHalSerialHandle*
1275 Function + furi_hal_serial_control_resume void
1276 Function + furi_hal_serial_control_set_logging_config void FuriHalSerialId, uint32_t
1277 Function + furi_hal_serial_control_suspend void
1278 Function + furi_hal_serial_deinit void FuriHalSerialHandle*
1279 Function + furi_hal_serial_dma_rx size_t FuriHalSerialHandle*, uint8_t*, size_t
1280 Function + furi_hal_serial_dma_rx_start void FuriHalSerialHandle*, FuriHalSerialDmaRxCallback, void*, _Bool
1281 Function + furi_hal_serial_dma_rx_stop void FuriHalSerialHandle*
1282 Function + furi_hal_serial_init void FuriHalSerialHandle*, uint32_t
1283 Function + furi_hal_serial_resume void FuriHalSerialHandle*
1284 Function + furi_hal_serial_async_rx uint8_t FuriHalSerialHandle*
1285 Function + furi_hal_serial_async_rx_start void FuriHalSerialHandle*, FuriHalSerialAsyncRxCallback, void*, _Bool
1286 Function + furi_hal_serial_async_rx_stop void FuriHalSerialHandle*
1287 Function + furi_hal_serial_set_br void FuriHalSerialHandle*, uint32_t
1288 Function + furi_hal_serial_suspend void FuriHalSerialHandle*
1289 Function + furi_hal_serial_tx void FuriHalSerialHandle*, const uint8_t*, size_t
1290 Function + furi_hal_serial_tx_wait_complete void FuriHalSerialHandle*
1291 Function + furi_hal_speaker_acquire _Bool uint32_t
1292 Function - furi_hal_speaker_deinit void
1293 Function - furi_hal_speaker_init void
1311 Function - furi_hal_spi_dma_init void
1312 Function + furi_hal_spi_release void FuriHalSpiBusHandle*
1313 Function + furi_hal_switch void void*
Function + furi_hal_uart_deinit void FuriHalUartId
Function + furi_hal_uart_init void FuriHalUartId, uint32_t
Function + furi_hal_uart_resume void FuriHalUartId
Function + furi_hal_uart_set_br void FuriHalUartId, uint32_t
Function + furi_hal_uart_set_irq_cb void FuriHalUartId, void (*)(UartIrqEvent, uint8_t, void*), void*
Function + furi_hal_uart_suspend void FuriHalUartId
Function + furi_hal_uart_tx void FuriHalUartId, uint8_t*, size_t
1314 Function + furi_hal_usb_disable void
1315 Function + furi_hal_usb_enable void
1316 Function + furi_hal_usb_get_config FuriHalUsbInterface*
1356 Function + furi_kernel_lock int32_t
1357 Function + furi_kernel_restore_lock int32_t int32_t
1358 Function + furi_kernel_unlock int32_t
1359 Function + furi_log_add_handler _Bool FuriLogHandler
1360 Function + furi_log_get_level FuriLogLevel
1361 Function - furi_log_init void
1362 Function + furi_log_level_from_string _Bool const char*, FuriLogLevel*
1363 Function + furi_log_level_to_string _Bool FuriLogLevel, const char**
1364 Function + furi_log_print_format void FuriLogLevel, const char*, const char*, ...
1365 Function + furi_log_print_raw_format void FuriLogLevel, const char*, ...
1366 Function + furi_log_puts void const char*
1367 Function + furi_log_remove_handler _Bool FuriLogHandler
1368 Function + furi_log_set_level void FuriLogLevel
1369 Function - + furi_log_set_puts furi_log_tx void FuriLogPuts const uint8_t*, size_t
Function - furi_log_set_timestamp void FuriLogTimestamp
1370 Function + furi_message_queue_alloc FuriMessageQueue* uint32_t, uint32_t
1371 Function + furi_message_queue_free void FuriMessageQueue*
1372 Function + furi_message_queue_get FuriStatus FuriMessageQueue*, void*, uint32_t
2430 Function + validator_is_file_alloc_init ValidatorIsFile* const char*, const char*, const char*
2431 Function + validator_is_file_callback _Bool const char*, FuriString*, void*
2432 Function + validator_is_file_free void ValidatorIsFile*
2433 Function + value_index_bool uint8_t size_t const _Bool, const _Bool[], uint8_t const _Bool, const _Bool[], size_t
2434 Function + value_index_float uint8_t size_t const float, const float[], uint8_t const float, const float[], size_t
2435 Function + value_index_int32 uint8_t size_t const int32_t, const int32_t[], uint8_t const int32_t, const int32_t[], size_t
2436 Function + value_index_uint32 uint8_t size_t const uint32_t, const uint32_t[], uint8_t const uint32_t, const uint32_t[], size_t
2437 Function + variable_item_get_context void* VariableItem*
2438 Function + variable_item_get_current_value_index uint8_t VariableItem*
2439 Function + variable_item_list_add VariableItem* VariableItemList*, const char*, uint8_t, VariableItemChangeCallback, void*

View File

@@ -33,7 +33,7 @@ void furi_hal_init() {
furi_hal_mpu_init();
furi_hal_clock_init();
furi_hal_random_init();
furi_hal_console_init();
furi_hal_serial_control_init();
furi_hal_rtc_init();
furi_hal_interrupt_init();
furi_hal_flash_init();