Commit Graph

129 Commits

Author SHA1 Message Date
Willy-JL
6ef8e40874 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-14 10:00:02 +00:00
gornekich
a46038acbf Gui text box: fix formatted string memory reservation (#3447)
* text box: reserve correct memory size to avoid reallocation
* Furi: change string reset behavior to release memory, prevent realloc call. Gui: fix NULL-ptr dereference in TextBox.

Co-authored-by: あく <alleteam@gmail.com>
2024-02-14 11:19:05 +07:00
Willy-JL
78e405051a Refactor Xtreme Settings/Assets, -1.3kb DFU 2024-02-14 02:40:41 +00:00
Willy-JL
db1d51cf24 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-12 03:16:30 +00:00
hedger
14dabf523a New toolchain with gcc 12 (#3254)
* changes for xPack 12.3
* support for gcc 13.2
* Update tools name
* Add new linux toolchain
* Fixed copro submodule
* Fix gdb-py
* Fixes for c++ apps
* Fix gdb-py3, add udev rules
* Fixed udev rules location
* Add MacOS arm, fix fbt toolchain download
* Fixed downloading error file
* fbt: fixed linker warnings; removed gcc 10 from list of supported toolchains
* ufbt: fixed supported toolchain versions
* nfc: replaced local malloc with calloc
* restored code with Warray-bounds to older state
* Update fbtenv.cmd
* Suppressing warnings
* Bump to 25
* Bump to 26
* lint: reformatted macros for new clang-format
* Bump to 27
* Fix m type word
* Bump to 28
* furi: added FURI_DEPRECATED macro
* scripts: toolchain download on Windows: fixing partially extracted cases

Co-authored-by: DrunkBatya <drunkbatya.js@gmail.com>
2024-02-12 09:04:12 +07:00
Willy-JL
41a7c3dbbf Remove debug and other bs from updater.bin 2024-02-09 06:19:49 +00:00
Willy-JL
5ea2c9799b Trace and Icons not essential in debug builds 2024-02-09 01:37:16 +00:00
Willy-JL
6a35b87376 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-08 22:56:18 +00:00
Kris Bahnsen
26da5f564b furi/core/timer: resolve timer handle use-after-free post deletion (#3431)
When xTimerDelete is called using a dymanic timer handle, the timer
handle should immediately be considered unusable for any operation;
including checking if the timer is still running. Under high system
loads, that memory region may see fast reuse while furi_timer_free
is sleeping between timer active checks. That reuse could result in
memory at that pointer causing the timer active check to return true.

Rework the furi_timer_delete process (in the case of dynamically
allocated callback memory) to stop the timer, wait for it to stop,
free the memory, and then delete the timer. Timers without dynamically
allocated callback memory are just sent a delete command; no need
to stop it first.

Fixes: ff33bc6aea ("Furi: wait for timer wind down in destructor (#1716)")

Signed-off-by: Kris Bahnsen <Kris@KBEmbedded.com>
2024-02-08 16:22:03 +07:00
Willy-JL
082d065ede Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-08 00:41:37 +00:00
あく
afd41aade1 FuriHal: various GPIO improvements (#3406) 2024-02-07 12:09:29 +03:00
Willy-JL
fd372f1461 Revert "Reset expansion settings on install for now"
This reverts commit fc87dc5dd2.
2024-01-30 19:23:05 +00:00
Willy-JL
fc87dc5dd2 Reset expansion settings on install for now 2024-01-26 23:04:55 +00:00
Willy-JL
76f1374436 Move expansion settings to SD card 2024-01-26 23:02:29 +00:00
Willy-JL
f3ac15acdc Fix updater bin being phat (for now) 2024-01-18 07:41:48 +00:00
Willy-JL
5ad37cd49d Merge branch 'ofw-dev' into xfw-dev 2024-01-18 02:32:35 +00:00
Georgii Surkov
95737958ad [FL-3669] Expansion module protocol (#3250)
* 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
* Implement basic external module detection and echo
* Update api symbols for f18
* Minimally working implementation (can create directory via rpc)
* Make expansion protocol parser a header-only library
* Rename a function
* Improve thread syncronisation
* Implement multi-packet transmissions
* Improve test application
* Clean up expansion worker code
* Send heartbeat when host is ready
* Update API symbols
* Add draft documentation
* Expansion worker: proper timeout and error handling
* Expansion worker: correct TX, do not disable expansion callback
* Expansion protocol: pc side test script
* PC side expansion test: trying to change baudrate
* Working comms between 2 flippers
* Cleaner exit from expansion worker thread
* Better checks
* Add debug logs
* Remove unneeded delays
* Use USART as default expansion port
* Refactor furi_hal_serial_control, fix crash
* Improve furi_hal abstraction, wait for stable rx pin
* Remove rogue include
* Set proper exit reason on RPC error
* Remove rogue comment
* Remove RX stability check as potentially problematic
* Improve expansion_test application
* Remove rogue define
* Give up on TODO
* Implement expansion protocol checksum support
* Update ExpansionModules.md
* RPC: reverse input
* Assets: sync protobuf
* Fix typos
* 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
* Make expansion_test compile
* Remove unneeded file
* Make PVS-studio happy
* Optimise stack usage
* Optimise heap usage, improve api signature
* Fix typo
* Clean up code
* Update expansion_protocol.h
* Fix unit tests
* Add doxygen comments to expansion.h
* Update/add doxygen comments
* Update ExpansionModules.md
* Github: new global code owner
* FuriHal: naming in serial control
* Expansion: check mutex acquire return result

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: SG <who.just.the.doctor@gmail.com>
Co-authored-by: Skorpionm <85568270+Skorpionm@users.noreply.github.com>
2024-01-16 18:18:56 +09:00
あく
fc043da9c6 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>
2024-01-16 03:09:37 +04:00
Willy-JL
0a55300926 Fix xtreme lib import 2023-12-02 06:32:04 +00:00
Willy-JL
05ae0dbf14 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into dev 2023-12-02 06:09:01 +00:00
hedger
890c9e87ce [FL-3690] Libraries cleanup; u2f crypto rework to use mbedtls (#3234)
* examples: plugins: utilize fal_embedded
* libs: removed fnv1a_hash
* furi: added FURI_PACKED; apps, libs: changed to use FURI_PACKED
* lib: mbedtls: using custom config
* lib: toolbox: removed md5, switched to mbedtls
* targets: f18: link fix
* lib: added mbedtls_cfg.h
* apps: nfc: explicit dependency on libmbedtls
* u2f: reworking to mbedtls
* u2f: replaced sha256 & hmac with mbedtls
* u2f: functional rework using mbedtls
* libs: dropped micro-ecc
* u2f: dropped old implementation
* toolbox: removed sha256 impl
* mcheck() for mbedtls
* libs: removed libmisc; split into smaller libs
* apps: debug: fixed display_test
* apps: include cleanups
* fbt: fixed VERSIONCOMSTR
* furi: added FURI_CHECK_RETURN
* lib: removed qrcode
* cleanup
* fbt: lint_py+format_py: fixed excessive command length
* api: Removed bzero from f7
* api: Removed bzero from f18
* Bump API Symbols

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-12-01 18:16:48 +09:00
Willy-JL
e0fa360640 Fix rename/move API, now rename/rename_safe (#468)
On OFW "rename" acts like "move", it replaces the destination
XFW had an extra "move" like that, and "rename" errored if dest exists
Now for compatibility "rename" acts as OFW, and new "rename_safe" errors
Tweaked all usages to work properly
Decided for CLI and RPC to use "rename_safe" so user cant lose files
2023-11-28 00:00:40 +00:00
Willy-JL
a4d01d5d88 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2023-11-16 02:19:28 +00:00
あく
457aa5331f Various Fixes for 0.95 (#3215)
* FuriHal: retry gauge/charger initialization
* FuriHal: lower logging level for flash known errata
* FuriHal: graceful fail if subghz chip is not working
* Furi: issue stop command even if timer is not active, document timer behavior
2023-11-15 20:11:05 +04:00
Willy-JL
f2902755ca Fix thread and timer api 2023-11-12 06:35:20 +00:00
Willy-JL
418f44fef1 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2023-11-12 02:56:30 +00:00
Willy-JL
aa1e50e653 Merge branch 'nfcrefactoring' of https://github.com/DarkFlippers/unleashed-firmware into xfw-dev 2023-11-12 01:04:33 +00:00
あく
47cc05dab4 [FL-3655] Dolphin: Extreme butthurt loop fix (#3184)
* Furi: change timer restart function signature, explicitly require timer time. Dolphin: fix incorrect timer usage caused by refactoring.
* Format Sources
* Furi: update timer documentation
2023-11-01 19:23:02 +04:00
あく
aa06328516 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>
2023-11-01 11:24:11 +04:00
あく
9af81ce8d0 Furi: cleanup crash use (#3175)
* Furi: optional message in furi_crash and furi_halt
* Consistent furi_crash use
* UnitTests: crash instead of assert
* furi: check: fixed macro for default arg
* unit_tests: fixed crashes everywhere
* lib: infrared: fixed PVS warnings
* furi: eliminated __FURI_ASSERT_MESSAGE_FLAG
* Furi: update check.h docs
* Furi: add check.h usage note
* Docs: grammar

---------

Co-authored-by: hedger <hedger@nanode.su>
2023-10-31 14:40:32 +04:00
MX
593b5fc098 Merge branch 'ofw_dev' into nfcrefactoring 2023-10-29 02:23:02 +03:00
gornekich
3d872cf37a [FL-3637] NFC RC fixes (#3165)
* firmware: remove nfc lib build settings section
* furi hal nfc: fix nfc irq gpio deinit
* lib nfc: remove deprecated exception from sources
* nfc: use ASK demodulator in transparent mode
* mf ultralight: add upper page bound for NTAGI2C1K
* furi hal nfc: set event if nfc event was started
* nfc: fix PVS warnings
* lib signal reader: remove gpio pull setting in alloc
* furi: added math.h include for compatibility with existing apps
* nfc: remove resolved TODO in mf desfire poller
* bump api symbol version

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: あく <alleteam@gmail.com>
2023-10-28 23:22:07 +09:00
Willy-JL
133397cb02 FURI_TRACE (useful furi_check() crashes) --nobuild 2023-10-17 03:16:33 +01:00
Willy-JL
f8fc8cbdf8 Merge branch 'dev' of https://github.com/DarkFlippers/unleashed-firmware into xfw-dev --nobuild 2023-10-15 06:25:14 +01:00
MX
b87a8ca329 Merge branch 'ofw_dev' into dev 2023-10-15 01:30:55 +03:00
Willy-JL
7fdda0bb84 Crash message for malloc(0) --nobuild 2023-10-13 07:11:09 +01:00
あく
f45a5dff43 Fix various crashes if debug libraries used (#3144)
* FuriHal: enable HSI in stop mode only if we use STOP0, proper SMPS selected clock assert

* Furi: fix double crash caused by bkpt use outside of debug session

* Libs: update ERC and MGG contrast

* Fix various crashes with LIB_DEBUG=1

* BadUsb: size_t where it should be and proper printf types

* Various fixes and make PVS happy

* FuriHal: proper CCID status and make PVS happy

* boot: update mode: graceful handling of corrupted stage file

---------

Co-authored-by: hedger <hedger@nanode.su>
2023-10-12 20:34:30 +04:00
MX
8a3d8bdee7 out of memory message 2023-08-20 04:21:09 +03:00
Willy-JL
367389367a Merge branch 'dev' of https://github.com/DarkFlippers/unleashed-firmware into xfw-dev 2023-08-10 02:18:22 +02:00
Sergey Gavrilov
00cdc3d1cb [FL-3461] RPC: md5 in storage list (#2929)
* Protobuf: update
* Toolbox: md5 for file. Unit-Tests: test md5_calc.
* Storage RPC, CLI, unit tests: use new md5_calc
* Protobuf: update
* RPC, StorageList: append md5 info to file
* fbt: attempt to fix shallow submodule checkouts
* pvs: make happy
* Protobuf: update to latest release

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-08-09 06:34:54 +09:00
Willy-JL
6e7048f84c Merge branch 'dev' of https://github.com/DarkFlippers/unleashed-firmware into xfw-dev 2023-08-03 12:09:59 +02:00
Leopold
c72531edc6 change FuriThreadPriorityIsr to 31 (configMAX_PRIORITIES-1) (#2920)
* change FuriThreadPriorityIsr to 31 (configMAX_PRIORITIES-1)
* Furi: less hardcoded max priority, fix spelling
* Format sources

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-08-02 13:23:04 +09:00
Willy-JL
05f5031858 Show boot status on screen 2023-07-26 23:52:00 +02:00
Willy-JL
a397a3f9bd Improve flipper init and add logging + led 2023-07-26 21:58:36 +02:00
Willy-JL
aaafdc1a82 Fix asset packs folder change stuff 2023-07-26 15:03:56 +02:00
ClaraCrazy
3264c37e5b Migrate asset packs folder 2023-07-24 13:54:32 +02:00
Willy-JL
23a78b9f77 Add error message for out of memory 2023-07-20 16:37:18 +01:00
Willy-JL
68431aa851 <:N1:1130620612352679958><:N2:1130620354440745162> 2023-07-17 23:06:58 +01:00
Willy-JL
4286bacdb6 Timer appid's (for APP_DATA_PATH() in timers) 2023-07-17 22:36:59 +01:00
Willy-JL
4a56baf158 Fix desktop keybinds path 2023-07-14 21:23:50 +02:00