Commit graph

190 commits

Author SHA1 Message Date
hedger
ace0901125
[FL-3486,FL-3392] fbt: various improvements and bug fixes (#2982)
* fbt: extapps: compact debug format for .faps
* fbt: sdk: fixed symbol cache regen logic for removed-only symbols
* lib: elf_file: early .fap file handle release
* fbt: extapps: added FAP_VERSION define for application environments
* github: added appsymbols artifact
* api: updates for f18
* github: fixed early fap_dist
* fbt: added flash_dap
* ufbt: added flash_dap
* fbt: reworked flash target; scripts: program.py->fwflash.py and changes
* vscode: updated configuration
* scripts: fwflash.py: ugly fixes for ufbt
* scripts: fwflash.py: cleanup
* fbt: flash: always use .elf file
* scripts: fwflash: fixed elf file path

Co-authored-by: あく <alleteam@gmail.com>
2023-08-23 03:33:10 +09:00
Astra
e353433cd8
[FL-3488] Assign tickets to all TODO items (#2988)
Co-authored-by: あく <alleteam@gmail.com>
2023-08-23 02:56:27 +09:00
hedger
35cdefa1ca
Removed explicit dependency on scons for external scripting (#2999) 2023-08-23 02:11:53 +09:00
dogtopus
a7f0f5ad27
Improve vscode clangd experience (#2431)
* Improve vscode clangd experience

- Resolve and use absolute path for the toolchain. This allows clangd to use compile_commands.json file without running under fbtenv, simplifies setup for vscode clangd extension. As a side effect, a rebuild is needed to update compile_commands.json after moving the source tree.
- Add the recommended default settings of the extension to settings.json.

* Use build/latest for compile-commands-dir

This makes it behave closer to c-cpp-properties.

* Reformat crosscc.py

This is a PEP-8 violation but black seems to enforce it

* Bypass --query-driver

This has some security implications as it grants clangd the ability to execute any executables anywhere while trying to probe a compiler based on CDB. However it's very hard to do this the safe and intended way without resorting to config generation due to reason listed in #2431. Besides that we already have workspace trust so what could go wrong? ;)

* Add an option for vscode_dist to switch between clangd and cpptools

This will install different extensions.json tuned for either clangd or cpptools based on user selection. It will also install c_cpp_properties.json when using cpptools since clangd doesn't use this file.

The root .gitignore now also doesn't accidentally ignore everything under the .vscode directory.

* Use absolute path for .vscode gitignore

Turns out the previously used "relative" paths aren't even valid gitignore patterns and to actually do what it means one needs to use the absolute paths instead.

* Handle variable parsing in commandline.scons

commandline.scons is the place where all other command line parsing happens. Move LANG_SERVER variable parsing there and add a constraint to make the code more consistent.

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2023-08-16 05:23:09 +04:00
hedger
7178bd20cf
ufbt: fixed FAP_SRC_DIR (#2970)
* fbt, ufbt: fixed "_appdir" internal property and FAP_SRC_DIR not working in ufbt environment
* fbt, ufbt: reworked CompileIcons(); added app's own root to app's #include path
* fbt: cleaner resolve_real_dir_node

Co-authored-by: あく <alleteam@gmail.com>
2023-08-11 01:21:56 +09:00
Sergey Gavrilov
498aee20a2
uFBT: devboard_flash to update WiFi devboard (#2969)
* uFBT: devboard_flash to update WiFi devboard
* uFBT: help
2023-08-10 21:29:44 +09:00
あく
2702c00ba4
Scripts: OB recovery (#2964)
* Scripts: OB recovery
* Scripts: slightly different ob
* Scripts: remove excessive return
* Scripts: simplifying work with registers
* Make PVS happy

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2023-08-10 19:45:17 +10:00
Alexandre L
d9e931b7b7
fbt: Fix building using path with space (#2948)
* fbt: Fix building on Windows using path with space
* scripts: Fixed formatting

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2023-08-09 04:46:07 +04:00
Lesha Lomalkin
c7648eb932
fbtenv: add additional environ variable to control execution flow (#2938)
* fbtenv: add flags FBT_PRESERVE_TAR, FBT_SKIP_CHECK_SOURCED for usage with external tools
* fbtenv: beautify, add info to fbtenv_print_config section if FBT_VERBOSE
* fbtenv: fixes

Co-authored-by: あく <alleteam@gmail.com>
2023-08-03 00:38:51 +09:00
Nikolay Minaylov
a2a4fa8cda
[FL-3408, FL-3429, FL-3430] Backlight notification fix (#2878)
* Notifications: display brightness override fix
* FuriHalVersionColor update
* float comparison fix

Co-authored-by: あく <alleteam@gmail.com>
2023-08-01 16:56:11 +09:00
Max Andreev
ff2e1acfdb
Fix fbtenv restore (#2924) 2023-07-28 23:45:27 +04:00
hedger
309f65e401
[FL-3437] fbt: build target for faps (#2888)
* fbt: added build target for faps. Usage: ./fbt build APPSRC=<appid>
* Updated docs & vscode config
* Code cleanup
2023-07-18 13:39:30 +04:00
hedger
20f6394ad8
[FL-3431] Radio headers in SDK (#2881) 2023-07-17 11:51:15 +04:00
Max Andreev
a319a6fdf2
Update toolchain to v23 (#2824)
Co-authored-by: あく <alleteam@gmail.com>
2023-07-11 19:36:15 +04:00
Sergey Gavrilov
9b2d80d6b7
[FL-3400] External menu apps (#2849)
* FBT, applications: add MENUEXTERNAL app type
* FBT, uFBT: build MENUEXTERNAL as EXTERNAL app
* Loader menu: show external menu apps
* LFRFID: move to sd card
* FBT: always build External Applications list
* Archive: look for external apps path
* Infrared: move to sd card
* Apps: add "start" apps
* iButton: move to sd card
* BadUSB: move to sd card
* External apps: update icons
* GPIO: move to sd card
* Loader: look for external apps path
* U2F: move to sd
* SubGHz: move to sd
* Apps: "on_start" metapackage
* NFC: move to sd
* Sync f7 and f18

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-07-10 12:03:41 +04:00
Sergey Gavrilov
645a7c5989
[FL-3386] Fast FAP Loader (#2790)
* FBT: build and add FastFAP(tm) sections
* Elf file: fast loading fap files. Really fast, like x15 times faster.
* fastfap.py: cleanup unused imports
* Toolchain: 23 version
* Elf File: remove log messages
* Scripts: fix file permissions
* FBT: explicit interpreter for fastfap invocation

Co-authored-by: あく <alleteam@gmail.com>
2023-06-28 17:19:10 +09:00
Konstantin Volkov
e680cf59b6
Actions: unit_test and updater timeouts (#2807)
* added some extra timeouts, fixed duration of units run command and minor logging changes. No list_ports yet needed
* increased timeouts
* make pvs happy

---------

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2023-06-28 06:47:13 +10:00
Sergey Gavrilov
761a14e6e2
[FL-2837][FL-3270] Loader refaptoring: second encounter (#2779)
* Core: rename internal FlipperApplication to FlipperInternalApplication
* FAP Loader: move load_name_and_icon to flipper_application library
* Loader menu: rework api
* View holder: move to gui service
* Loader: simple "loading" worker
* Loader: applications dialog
* Loader: fapping
* Update f18 api
* Apps: remove fap_loader
* Libs, flipper application: store args, rename thread allocation
* Loader: error handling
* Apps: use loader error handling
* Loader: documentation
* FBT: accomodate loader
* Loader: do not raise gui error if loader is locked
* Archive: accomodate loader
* Loader: fix loading message
* Flipper: drop some old dolphin legacy
* Loader: generalize error construction

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-06-23 21:01:40 +09:00
あく
4ddfe05a59
Debug: sync apps on attach, makes it possible to debug already started app that has crashed (#2778) 2023-06-16 10:48:57 +04:00
hedger
2312fe5bfc
[FL-3361] fbt: stable build dates (#2751)
* scripts: using commit date for clean build timestamp; current day otherwise
* scripts: version: Removing GIT_COMMIT_DATE from final data

Co-authored-by: あく <alleteam@gmail.com>
2023-06-09 21:27:47 +09:00
hedger
1c306a04fc
[FL-3359] github: added debugapps artifact; packaging resources per-target (#2750)
* github: added debugapps artifact; packaging resources per-target
* github: target name fixes
* github: fixed path for debug apps
* scripts: dist: removed lib stub artifact
* scripts: fixed broken SDK
* github: removed unused step
2023-06-08 21:43:05 +09:00
Sergey Gavrilov
e5343fdc9a
Scripts: WiFi board updater (#2625)
* Scripts: wifi updater
* WiFi board updater: lint, process download error
* WiFi board updater: auto cleanup temp dir
* Scripts: fix server address
2023-06-08 17:28:08 +09:00
hedger
3226254876
[FL-3351] github: re-enabled f18 build (#2743)
* github: re-enabled f18 build
* scripts: storage: better transfer logging
* Fix PVS warnings

Co-authored-by: あく <alleteam@gmail.com>
2023-06-08 15:16:01 +09:00
hedger
436194e6c7
[FL-3346] fbt: added Flipper selection when multiple are connected over USB (#2723)
* fbt: added Flipper selection when multiple are connected over USB
* scripts: serial_cli: added --port (-p) option
2023-06-08 13:47:27 +09:00
glebmashanov
09fae620d9
Map parser licence description (#2739)
* Add map parser licence description
* Add map parser copyright text & licence note

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-07 17:30:26 +04:00
hedger
754e640c8d
[FL-3246] fbt, ufbt: added checks for appid in app manifests(#2720)
Co-authored-by: あく <alleteam@gmail.com>
2023-06-07 11:14:33 +09:00
Max Andreev
6f6ead1726
[FL-3045] Fix core2 permisions (#2742)
* Fix core2 permisions

* Fix Python code style

* scripts: copro: changed int literals

* scripts: copro: shorter string line in code

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-06 23:33:04 +04:00
DEXV
e4a2e9a920
Serial_CLI: Fixing serial cli logger error so it sounds more concise (#2721)
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-06-06 22:18:24 +04:00
Max Andreev
72ad22bb91
[DEVOPS-18]: Add map file parser, mariadb inserter (#2732) 2023-06-05 19:25:43 +09:00
Zoë Prosvetova
3a7203e32e
Update dolphin.py (#2717)
Co-authored-by: あく <alleteam@gmail.com>
2023-06-01 18:59:41 +09:00
hedger
8d2ea14f06
[FL-3330] fbt: added hooks for build & dist environments; added FW_ORIGIN_* macro for apps & SDK (#2705)
* fbt: added hooks for build & dist environments
* Moved env hooks to an optional file
* Fixed var name
* Added fw origin to device info
* Bumped device info version
* fbt: added FIRMWARE_ORIGIN option. Different implementation for FW_ORIGIN_* C macro.
* api: bumped versions
* fbt: added fbt_options_local.py
* gitignore: cleanup

Co-authored-by: あく <alleteam@gmail.com>
2023-05-30 01:40:56 +09:00
hedger
a821a2fcc0
[FL-3328] Removed user-specific data from tar artifacts (#2691) 2023-05-23 19:51:21 +09:00
Yukai Li
5f1ac6e1b1
fbt: Fix tar uid overflow when packaging (#2689)
* fbt: Fix tar uid overflow when packaging
* Fix trailing spaces
2023-05-22 13:14:18 +04:00
MX
d9fc408d96
fbt: Use union for old py (#2685) 2023-05-21 21:50:38 +04:00
hedger
8d1f5b04b3
[FL-3317] fbt: allow strings for fap_version field in app manifests (#2672) 2023-05-14 20:49:52 +09:00
あく
f57f0efc48
Debug: revert cortex debug to lxml and drop DWT (#2651)
* Debug: revert cortex debug to lxml

* Debug: update PyCortexMDebug readme

* fbt: moved "debug" dir to "scripts" subfolder

* ufbt: added missing debug_other & debug_other_blackmagic targets; github: fixed script bundling

* lint: fixed formatting on debug scripts

* vscode: updated configuration for debug dir changes

---------

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2023-05-09 03:31:44 +04:00
hedger
241b4ef6e4
[FL-3299] furi_crash: added C2 status; added fw-version gdb command (#2638)
* furi_crash: added C2 status
* debug: Added "fw-version" gdb command; vscode: updated configuration to use new command
* debug: added fw-info command to debug_other session
* Toolbox: versioned structure for Version
* debug: fw-version: no longer needs an ELF file loaded
* debug: flipperversion: removed unused variable
* debug_other: print running fw version

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-09 07:31:39 +09:00
hedger
268b88be0d
[FL-3285] Removed STM32CubeWB module (#2608)
* libs: removed STM32CubeWB module; split cube into 3 submodules
* fixed f18 version
* fbt: options: fixed expected stack version
* pvs: updated for new paths
* fbt: ep: multithreaded submodule update
* libs: stm32cubewb: fixed duplicate include path; renamed to stm32wb; codeowners: updated paths; docs: updated paths
* pvs: updated paths
* libs: added cmsis_core from ARM sources, v.5.4.0, from https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/Core/Include
* Updated stm32wb_copro structure
* PVS: exclude cmsis core from analysis

---------

Co-authored-by: あく <alleteam@gmail.com>
2023-05-09 06:30:33 +09:00
hedger
538f96f0ac
[FL-3300] API version in UI (#2649)
* desktop, about: replaced commit# with API version
* scripts: storage: added approx speed for file uploads
* scripts: selfupdate: use folder name by default
* vscode: fixed broken get_blackmagic shell integration on *nix

Co-authored-by: あく <alleteam@gmail.com>
2023-05-08 20:11:23 +09:00
hedger
f7dd77795a
ufbt: deploying sample ufbt automation for new apps; added source "ufbt -s env" for toolchain access (#2648) 2023-05-08 20:01:52 +09:00
Perry Fraser
954780ed24
Fix storage.py exist_dir logic (#2639)
* Fix storage.py exist_dir logic. This method would return true if the given path existed as either a directory or
a file, which is what the plain exist method is for.
2023-05-07 22:40:38 +04:00
hedger
c3ececcf96
[FL-3174] Dolphin builder in ufbt; minor ufbt/fbt improvements (#2601)
* ufbt: added "dolphin_ext" target (expects "external" subfolder in cwd with dolphin assets); cleaned up unused code
* ufbt: codestyle fixes
* scripts: fixed style according to ruff linter
* scripts: additional cleanup & codestyle fixes
* github: pass target hw code when installing local SDK with ufbt
* ufbt: added error message for missing folder in dolphin builder
* scripts: more linter fixes
* sdk: added flipper_format_stream; ufbt: support for --extra-define
* fbt: reduced amount of global defines
* scripts, fbt: rearranged imports

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-03 14:48:49 +09:00
Georgii Surkov
238005890e
[FL-3294] Fix TERMINFO on Linux systems (#2630)
* Fix TERMINFO on Linux systems
* Set TERMINFO_DIRS only on Linux
* Unset TERMINFO_DIRS if it was not set before
2023-05-03 00:56:25 +03:00
hedger
1ef70c0bb4
[FL-3280] cubewb: downgraded to v1.15.0 (#2605)
* cubewb: downgraded to v1.15.0
* hal: updated f18 symbols to match LL
* hal: flash: use furi_hal_cortex_timer for timeouts
* scripts: fixed cube version validation from config file
* hal: flash: added 3 seconds timeout when waiting for C2 to unlock flash controller. On timeout, triggers furi_check
* nfc: fixed missing interrupt setup on multiple platformSetIrqCallback() invocations
* hal: gpio: don't trigger furi_check on furi_hal_gpio_add_int_callback() with same parameters
* Reverted NFC fixes - will be in a separate PR
* scripts: storage: fixed exception handler for paths
2023-04-24 16:19:36 +09:00
hedger
4d015a1106
[FL-3271] cubewb: updated to v1.16.0 (#2595)
* cubewb: updated project to v1.16.0
* hal: updated api_symbols for f18
* FuriHal: add missing enterprise sleep and insomnia
* FuriHal: slightly more paranoic sleep mode

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-20 21:57:51 +09:00
hedger
3932503660
[FL-3243] github: testing SDK with ufbt action (#2581)
* github: testing SDK with ufbt action
* github: also build apps with ufbt
* github: fixed dir lookup for ufbt
* ufbt: checks for compatibility on app discovery
* github: Conditional app skip for ufbt
* github: fixed app build flow with ufbt
* extra debug
* github: lint: message capture
* github: testing different output capture method for linters
* shorter version of status check
* github: updated comment actions to suppress warnings
* Reverted formatting changes

Co-authored-by: あく <alleteam@gmail.com>
2023-04-19 20:08:13 +09:00
hedger
b9ccb274a7
ufbt: project & debugging updates (#2572)
* ufbt: removed warning in "channel=dev" update mode
* ufbt: removed API version warning; added get_blackmagic & get_apiversion targets
* ufbt: updater project template to include blackmagic & jlink targets
* ufbt: project template: fixes & updates
* ufbt: project template: added config update shortcut
* sdk: using fixed names for file components
2023-04-11 00:46:22 +10:00
hedger
89161a7a1e
scripts: sconsdist: added stub file artifact for older ufbt (#2568)
* scripts: sconsdist: added stub file artifact for older ufbt
* scripts: sconsdist: not creating dummy SDK archive
2023-04-07 05:37:12 +10:00
あく
0d8518d31d
[FL-3232] FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx (#2565)
* FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx
* Github: workflow event debug print
* Github: proper PR head commit SHA extraction in get_env.py
2023-04-06 19:06:19 +10:00
hedger
a91d319839
[FL-3162] Moved ufbt to fbt codebase (#2520)
* scripts: moved ufbt code
* ufbt: fixed tool path
* ufbt: fixed linter/formatter target descriptions
* scripts: ufbt: cleanup
* fbt: moved fap launch target to tools; ufbt fixes
* fbt: fixed missing headers from SDK
* ufbt: removed debug output
* ufbt: moved project template to main codebase
* ufbt: fixed vscode_dist
* ufbt: path naming changes
* fbt: error message for older ufbt versions
* ufbt: docs fixes
* ufbt: fixed build dir location
* fbt: fixes for extapps objcopy
* fbt: extapps: removed extra debug output; fixed formatting
* ufbt: handle launch target for multiple known apps
* ufbt: dropping wrapper; linter fixes
* ufbt: fixed boostrap path
* ufbt: renamed entrypoint
* ufbt: updated vscode config
* ufbt: moved sconsign db location
* ufbt: fixed sconsign path
* fbt: SDK builders rework
* fbt: reworked sdk packaging
* ufbt: additional checks and state processing
* ufbt: fixed sdk state file location
* dist: not packaging pycache
* dump commit json content
* Github: more workflow debug prints
* Github: fix incorrect commit meta extraction in get_env.py
* ufbt, fbt: changed SConsEnvironmentError->StopError
* fbtenv: no longer needs SCRIPT_PATH pre-set
* ufbt: fixed sdk state check
* scripts: exception fixes for storage.py
* scripts: fbtenv: added FBT_TOOLCHAIN_PATH for on Windows for compat
* ufbt: app template: creating .gitkeep for images folder
* ufbt: app template: fixed .gitkeep creation
* docs: formatting fixes for AppManifests; added link to ufbt
* fbt: added link to PyPI for old ufbt versions
* sdk: fixed dir component paths

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-06 10:44:37 +08:00