Commit graph

645 commits

Author SHA1 Message Date
あく
48191ea20a
Rollback gui update visibility check, fixes gui thread lockup. (#340) 2021-02-15 02:46:59 +03:00
あく
23f66c2cdd
[FL-878] Gui: screen streaming (#337)
* GUI: canvas streaming
* Fix right status bar icon alignment
2021-02-13 14:40:20 +03:00
あく
b835d7a451
[FL-872] Furi, API-HAL, App-Loader cleanup and improvements (#334)
* Furi: replace obsolete furiac_exit with osThreadExit, drop obsolete apis and test. Rename systemd to flipper and move to separate file, cleanup. ApiHal: Rename timebase to os and move freertos hooks there, move insomnia api to power module.
* Furi: new thread helper
* Furi: cleanup thread documentation
* Flipper, AppLoader: update to use FuriThread. Update tasks signatures to match FuriThreadCallback signature.
* F4: rename API_HAL_TIMEBASE_DEBUG to API_HAL_OS_DEBUG
* Applications: rename FuriApplication to FlipperApplication, use FuriThreadCallback signature for apps.
* C++ app template sample, new exit method
2021-02-12 20:24:34 +03:00
rusdacent
7c5de59f53
add force remove artifacts dir for CI (#338) 2021-02-12 20:14:07 +03:00
DrZlo13
0846de20a4
IrDA test app^ acquire state only when needed, fix exit, remove delay in main program cycle (#335) 2021-02-12 18:44:14 +03:00
rusdacent
0899c18d38
Add dfu converter (#336)
* Install hex2dfu in Dockerfile
* Add convert and upload dfu files for bootloader and firmware
2021-02-12 13:04:35 +03:00
あく
2d09b8e318
[FL-867] GUI: ViewPort arrangement API, better input and draw dispatching (#333)
* Input: refactoring, platform agnostic key configuration, update usage across project. Minor queue usage fixes and tick timings.
* Gui: lighter and more efficient input and draw call dispatching, ViewPort rearranging API. View: conditional model updates, API usage update.
* BT: smaller update delay
* GUI: ViewPort visibility check
2021-02-10 12:06:29 +03:00
あく
928bca4eaa
Api hal timebase: fix lptim lockups caused by flag clear outside of interrupt (#332) 2021-02-10 12:00:38 +03:00
あく
8b94eff7f9
Input: refactoring, platform agnostic key configuration.
Update input usage across project. Minor queue usage fixes and tick timings. (#330)
2021-02-10 11:56:05 +03:00
DrZlo13
5dbe2983aa
Fixed procedure for sending IrDA commands, disabled interrupts for better stability (#329)
* Disable irq when send command
2021-02-09 14:21:05 +03:00
DrZlo13
446ba55b08
fix guttons text in gui test app (#327) 2021-02-05 03:23:29 +03:00
あく
3b24f7ff96
Wipe flash throw readout protection script (#325) 2021-02-05 02:47:59 +03:00
DrZlo13
4341da90dc
Implementation of some widgets based on real use cases and designs [FL-392][FL-809] (#315)
* gui test app
* aligned string draw functions
* add canvas_invert_color, canvas_draw_button_left, canvas_draw_button_right
* use new str and button fns in dialog
* real dialog mockup
* add new gui test app recipe
* submenu module init
* delete unused variable
* move buttons to element, add canvas_string_width fn, new center button element
* button icons
* submenu module
* use submenu module, switch views
* keyboard buttons img
* new font for keyboard
* text input (keyboard) module
* add text input to gui test app
* add gui tesst app to release build, fix flags
* handle transition from start and end position, fix input switch
* add long text support to text input
* canvas_string_width and the underlying u8g2_GetStrWidth now return uint16_t
* remove deprecated libs and apps
* canvas_font_max_height fn
* new element, aligned multiline text
* use multiline text instead of plain string
* fix second keyboard row, rename uppercase fn
* qwerty-like keyboard layout
* new icons for iButton app
* better dialog text position and events handling
* remove confusing comment
* new extended dialog module
* extended dialog module usage
* update docs
* new gui module, popup with timeout
* popup usage
* canvas, remove outdated canvas_font_max_height, use canvas_current_font_height
* use furi check
* use new view_enter and view_exit callback for timers
* add DrZlo to gui tester codeowner

Co-authored-by: aanper <mail@s3f.ru>
2021-02-05 02:35:06 +03:00
あく
9642f0d529
API HAL Power: enable smps by default (#324) 2021-02-04 15:20:27 +03:00
あく
2187dc7117
GUI: view enter, exit callbacks. (#326) 2021-02-04 15:05:46 +03:00
あく
cb4fb8e4ae
FL-819 new first start screen, add multiline text (#318)
* GUI Canvas: get current font height routine
* Dolphin: new start screen. GUI: new multiline element.
* Dolphin: up state version to reset it for everyone
* Dolphin: take maximum of idle screen height
* Dolphin: frames on first start screen.
2021-02-03 12:52:54 +03:00
rusdacent
7481cfd6eb
Fix docker build (#323)
* fix repos for clang
* fix path for CLANG_FORMAT_BIN in syntax_check.sh
* get version for clang-format
* fix versions for clang-format
2021-02-03 01:15:45 +03:00
あく
8836e34840
[FL-831] Update DIS profile: add firmware generation and software version. Stack overflow fixes. (#322)
* BLE: prevent stack overflow in hrs thread
* BLE: add firmware and software attribute to dis service
* BLE: return tx to 0dBm
* BLE: update tx power configuration comment to match real value
2021-02-02 19:41:19 +03:00
coreglitch
41219cc78e
Fix werror flag and warnings (#321)
* fix Werror flag
* strdup implementation fix
* fix irda and lfrdid printf
* remove unused position
* doubtful type fix
* type fix in EXTI interrupt
* fix warnings in CubeWB, need to fork ST repo
* onewire fixes
* fork STM32WB Cube repo
2021-02-01 10:51:22 +03:00
あく
49057be9c9
Floopper-bloopper: fix ticker (#319) 2021-01-31 23:01:41 +03:00
DrZlo13
63a1a4e4d7
fix some bugs with sd spi (#320)
* change sd init speed
* add pullup on bus
2021-01-30 12:01:48 +03:00
あく
523f99f154
GUI: rename widget to ViewPort. Update GUI API usage. (#317) 2021-01-29 16:52:16 +03:00
あく
7243758b40
Update readme, add flashing scripts (#316) 2021-01-29 14:18:10 +03:00
あく
584c0962d8
[FL-781] FURI, CLI, stdlib: stdout hooks, integration between subsystems, uniform printf usage (#311)
* FURI stdglue: stdout hooks, local and global, ISR safe printf. Uniform newlines for terminal/debug output. Power: prevent sleep while core 2 has not started.
* Furi record, stdglue: check mutex allocation
* remove unused test
* Furi stdglue: buferized output, dynamically allocated state. Furi record: dynamically allocated state. Input dump: proper line ending. Hal VCP: dynamically allocated state.
* Interrupt manager: explicitly init list.
* Makefile: cleanup rules, fix broken dfu upload. F4: add compiler stack protection options.
* BLE: call debug uart callback on transmission complete
* FreeRTOS: add configUSE_NEWLIB_REENTRANT
* API HAL Timebase: fix issue with idle thread stack corruption caused by systick interrupt. BT: cleanup debug info output. FreeRTOS: disable reentry for newlib.
* F4: update stack protection CFLAGS to match used compiller
* F4: disable compiller stack protection because of incompatibility with current compiller
* Makefile: return openocd logs to gdb
* BLE: fixed pin, moar power, ble trace info.
* Prevent sleep when connection is active
* Makefile: return serial port to upload rule, add workaround for mac os
* Furi: prevent usage of stack for cmsis functions.
* F4: add missing includes, add debugger breakpoints
* Applications: per app stack size.
* Furi: honor kernel state in stdglue
* FreeRTOS: remove unused hooks
* Cleanup and format sources

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-01-29 03:09:33 +03:00
coreglitch
fd5f694758
[FL-812] Fix emulation timings (#314)
* fix timings
* fix default vendor id to 0
2021-01-29 02:45:32 +03:00
DrZlo13
cf1c8fb223
[FL-85][FL-446][FL-720] Dallas key blanks and OneWire lib rework (#313)
* sepate one wire class
* TM2004 writer
* app mode write ds1990
* test another blanks protocol
* new ibutton slave
* one wire states
* tim1 capture compare and update interrupts
* interrupt mgr, new timers IRQ
* discard HAL_TIM_PeriodElapsedCallback from main
* add exti_14 line
* add external interrupt callback
* use int mgr in input
* better interrupt managment
* add interrupt callback enable and disable fns
* properly init app
* changed timings
* rename one wire classes
* use new owb classes
* properly remove interrupts
* new blanks writer
* remove unused tests
* new core includes
* extern c guard
* fix api_interrupt_remove usage
* remove debug info, new way to detect blanks writing
* remove copy constructor
* change keys template
* fix app sources recipe
2021-01-28 15:30:31 +03:00
coreglitch
a7951ade69
FL-810 fix emulating init state (#312)
* fix emulating init state
* add/remove comparator callback on start/stop reading
2021-01-26 16:49:37 +03:00
coreglitch
312d3fbd9e
sleep mode for CC1101 at subghz app exit (#310) 2021-01-20 23:06:31 +03:00
coreglitch
24ab7384a0
modify codeowner (#309) 2021-01-20 21:18:15 +03:00
あく
d0ed33e710
GUI module example: 2 button dialog (#308)
* GUI: reusable module example
2021-01-20 19:51:01 +03:00
DrZlo13
8f9b2513ff
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
あく
6c4983c6b6
HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode. (#307) 2021-01-20 10:43:12 +03:00
あく
c8aca9ef48
[FL-667] Power saving: deep sleep in tickless state (#300)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2.
* API: move all sumbodules init routines to one place.
* Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. 
* FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. 
* Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting.
* HAL: nap while in insomnia mode.

Co-authored-by: coreglitch <mail@s3f.ru>
2021-01-18 18:08:58 +03:00
DrZlo13
c3a8af8448
[FL-698] SD cli commands (#306)
* add c++ compability in cli
* add sd-filesystem cli commands
* add sd-card-test cli commands
* use context pointer
2021-01-14 03:23:34 +06:00
coreglitch
34ac4f0d91
fix gpio set (#305) 2021-01-13 03:24:57 +06:00
DrZlo13
9ed8bebba1
SPI Device API (#304)
* spi device config
* fix api_interrupt_call warning
* added configs for spi2 bus devices
* simplified spi bus api
* use new spi device api
2021-01-12 20:33:36 +03:00
coreglitch
6a5e3e83b4
FL-524 Fix subghz freq (#303)
* add freq tuning
* remove force VCO from test settinigs
2021-01-12 18:05:44 +06:00
DrZlo13
f94633863c
[FL-520] Filesystem Api and App (#280)
* update fatfs integer types
* fix sector size to 512
* fix sector size calculation
* common fs api
* fs api realization (sd card + fat fs)
* better sector size definition
* more api realization fns
* add error description api, add common api
* fix api flag naming, run app
* add fs_info call
* disable fatfs strfuncs, enable fatfs chmod
* rework filesystem app
* sd detect cycle, sd menu, sd eject feature
* fix sd detect cycle
* sd card format routine
* ui improvements, sd info routine
* properly unmount card
* separate mode flags
* add api folder, move app, rename app
* fix api naming
* update st-card-test to use api
* update path to app
* fixed potential problem of using sizeof union
* updated api documentation, new time/date fns
* update codeowners
* changed app requirements
* changed app order
* sd insert/remove log
2021-01-11 20:52:35 +06:00
あく
6928122650
FL-53: new NFC worker, A/B/F/V poll and display. (#283)
* GUI: view. Flooper-blooper fix compilation error.
* GUI: view and viewdispatcher bones
* GUI: view implementation, view models, view dispatcher
* GUI: view navigation, model refinement. Power: use view, view dispatcher.

* HAL Flash: proper page write. Dolphin: views. Power: views

* Dolphin: transition idle scree to Views
* Dolphin: input events on stats view. Format sources.

* HAL: flash erase. Dolphin: permanent state storage.

* Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch.

* NFC: rewrite worker
* NFC: add support for B,F,V.
* NFC: replace rfal irq hanlder with realtime thread, more details about cards.

* Bootloader: LSE and RTS shenanigans, LED control, morse code for LSE failure error.

* F4: stop in Error_Handler

* BLE: handle working FUS, but empty radio stack.

* HAL: alive FUS is now sufficient for flash controller access

* Dolphin: update model after state load

* NFC: detect navigation

* RFAL: use osPriorityISR for isr thread

* NFC: emulation

* Bootloader: rollback incorrectly merged rename

* Dolphin: rollback incorrectly merged changes

* RFAL: remove volatile from thread attr

* RFAL: do not call platform ErrorHandler, error codes is enough

* NFC: improved error handling

* Format sources

* NFC: reset detect view model on start

* Format sources

* update codeowners

* NFC: hide last info if no card detected
2021-01-11 18:42:25 +06:00
あく
34dbb2ea86
GUI: fix issue with gui update on view draw (#301) 2021-01-11 15:20:29 +03:00
あく
6126d117a9
Update mlib and STM32CubeWB (#299)
Co-authored-by: coreglitch <mail@s3f.ru>
2021-01-11 14:38:27 +03:00
あく
2cfe80cc36
Debug: add openocd freertos support (#302) 2021-01-11 14:27:20 +03:00
あく
fb0b3aeb3f
Remove old unused L4 cube (#298) 2021-01-11 14:22:16 +03:00
あく
1b78418f9f
FL-528 GUI: View, ViewDispather. Dolphin: first start. (#276)
* GUI: view. Flooper-blooper fix compilation error.
* GUI: view and viewdispatcher bones
* GUI: view implementation, view models, view dispatcher
* GUI: view navigation, model refinement. Power: use view, view dispatcher.
* HAL Flash: proper page write. Dolphin: views. Power: views
* Dolphin: transition idle scree to Views
* Dolphin: input events on stats view. Format sources.
* HAL: flash erase. Dolphin: permanent state storage.
* Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch.
2021-01-08 10:42:48 +06:00
DrZlo13
d65e9b04ce
[FL-572][FL-577] Irda receive feature (#282)
* fix "state not acquired error"
* add InterruptTypeComparatorTrigger to interrupt mgr, use interrupt mgr in irda app
* separate init irda timer
* capture events buffer by app
* irda common decoder
* irda nec decoder realization
* finished work with decoder
* fix app path
* fix widget remove on exit
* nec receive, store and send
* init some packets
2021-01-07 22:28:35 +06:00
rusdacent
c70ed2f349
Sh runner (#297)
* set self-hosted runner
* set GH runner for pylint
* fix upload to storage
* add workspace cleanup for CI
2021-01-07 22:10:07 +06:00
rusdacent
b7210eaf0e
Sh runner (#295)
* set self-hosted runner
* set GH runner for pylint
* fix upload to storage
2021-01-07 13:32:19 +06:00
rusdacent
b2b295c3f9
Sh runner (#292)
* set self-hosted runner
* set GH runner for pylint
2021-01-07 02:51:01 +06:00
あく
88ed32483d
Power: set smps clock according to used inductor. RTC: do not reset clock on each start. (#281) 2021-01-07 02:03:37 +06:00
coreglitch
21f4acf5c5
grammar fix of template (#294) 2021-01-07 01:53:39 +06:00