* Makefile, Scripts: new linter
* About: remove ID from IC
* Firmware: remove double define for DIVC/DIVR
* Scripts: check folder names too. Docker: replace syntax check with make lint.
* Reformat Sources and Migrate to new file naming convention
* Docker: symlink clang-format-12 to clang-format
* Add coding style guide
* Add cscope db generation
* Add api-hal-irda, TIM2: HAL->LL
* Add libirda: pwm decoding
* Universal state machine
* Add irda decoder library
* Move IRDA capture to standalone tool
* Add encoder/decoder samsung32, NEC, fix bugs
* Port current App to new Irda lib
* Fix clang format for test data
* Port IRDA api-hal to f6
Co-authored-by: あく <alleteam@gmail.com>
* furi_log: introduce log system
* applications: rework with furi logging
* furi_log: reset color after tag printed
* core: add log info
Co-authored-by: あく <alleteam@gmail.com>
* Add F5 target, lp5562 driver and api-hal-light. Update api-usage, switch to F5 by default.
* API HAL: add i2c and hardware version api. Dolphin: show hardware version.
* OTP version generator and flashing utility.
* Assets script: fix code formatting
* Backport F5 changes to F4
* F4: disable insomnia, prevent damage to BLE RX path
* F5 HAL API Light: remove magic delay to fix magic BLE
* Dolphin: HW target validation on start
* invert RSSI indication in sub-1
* API HAL: rename board to body in version api
* Gpio tester: detach and release viewport on exit
Co-authored-by: aanper <mail@s3f.ru>
* 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
* 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>
* add input debounce code from old fw
* exampl of input api
* change input API to get/release
* revert input API to read
* pointer instead of instance
* add input API description
* add display API
* rewrite display names
* migrate to valuemanager
* add LED API
* add closing brakets
* add sound api
* fix led api
* basic api
* rename API pages
* change pubsub implementation
* move FURI AC -> flapp, add valuemutex example, add valuemanager implementation
* pubsub usage example
* user led example
* update example
* simplify input
* add composed display
* add SPI/GPIO and CC1101 bus
* change cc1101 api
* spi api and devices
* spi api and devices
* move SPI to page, add GPIO
* not block pin open
* backlight API and more
* add minunit tests
* fix logging
* ignore unexisting time service on embedded targets
* fix warning, issue with printf
* Deprecate furi_open and furi_close (#167)
Rename existing furi_open and furi_close to deprecated version
* add exitcode
* migrate to printf
* indicate test by leds
* add testing description
* rename furi.h
* wip basic api
* add valuemutex, pubsub, split files
* add value expanders
* value mutex realization and tests
* valuemutex test added to makefile
* do not build unimplemented files
* fix build furmware target f2
* redesigned minunit tests to allow testing in separate files
* test file for valuemutex minunit testing
* minunit partial test valuemutex
* local cmsis_os2 mutex bindings
* implement furi open/create, tests
* migrate concurrent_access to ValueMutex
* add spi header
* Lib: add mlib submodule.
Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
* fixed inline functions for modern C standart
* more stack for application
* added library
* init fatfs library
* fatfs example application
* Merge with current master
* fix typo and delete old files
* cmsis os 2 reentrance fix
* Reworked dependency wait to support multiple dependency
* Build FatFS on local target, syscall.c is target-specific.
* run local target ok
* testcase for fatfs
Co-authored-by: aanper <mail@s3f.ru>
* Lib: move cube to libs. Firmware: prepare for code base refactoring, detach from cube, port to cmsis_os2.
* Firmware, target f2: regenerate project with latest cube package, tim17 for os ticks.
* Firmware: unified codebase.
* Core: do not include semaphore on old targets. Firmware: dfu uplaod target.
* CI: submodules, add firmware build.
* CI: proper submodule config.
* refactor build system
* CI: update chain to use new targets. Documentation: update to match current structure.
* CI: clean before rebuild.
* Add local test
docker-compose exec dev make -C firmware TARGET=local TEST=1 run
* Makefile: target specific build directory. CI: updated artifacts path.
* Makefile: init git submodules if they don't exists.
* Makefile: debug rule now doesn't reset MCU, prevent SIGINT propagation to st-util.
* Makefile: proper rebuild sequence in zz and zzz
* Makefile: timestamp tracking for flash and upload commands.
* Apps: modular build. Input: fix flipper hal inline.
* Wiki: proper bootloader link.
* Applications: fix broken build for local targets.
* add st-flash to docker
* fix build
* force rebuild app
* move app force to firmware part
* fix build deps
* qrcode build ok
* fix example display
* add testing routine
* update build instruction
Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
* proof of concept
* fix syntax for rust and add auto fix syntax
* fix syntax for C
* fix bug with files owner
* add information to wiki
* try to add ci
* format code from master
* even more format fixes
* change docker to docker-compose
* Exclude ./target_*/build directories from format check
* Run rustfmt only on project files
* add ulimit setup for long clang list
* merge
* fix rustfmt, exclude target Inc directory
* sync with master
* abspath
Co-authored-by: aanper <mail@s3f.ru>
Co-authored-by: Vadim Kaushan <admin@disasm.info>
* add blank example
* add ipc example code, need to change FURI API
* add ipc example code, need to change FURI API
* change core API, add context
* check handler at take
* fix important bugs in furi
* drawing example
* add posix mq
* fix unsigned demo counter
* create at open
* working local demo
* russian version of IPC example
* english version
* add gif