Commit graph

819 commits

Author SHA1 Message Date
JF002 0ce98c7ac7
Merge pull request #415 from JF002/move-heap-to-static
Move dynamically allocated variables to static variables.
2021-06-12 11:02:06 +02:00
Jean-François Milants 6d524ebea2 Move most of the code from the constructor of the objects statically initialized in main() into Start()/Init() functions to avoid Static Initialization Order Fiasco (https://en.cppreference.com/w/cpp/language/siof). See https://github.com/JF002/InfiniTime/pull/415#issuecomment-859004238. 2021-06-12 10:58:28 +02:00
Florian 049174bd35 replace ScreenList with a single screen in Clock. This removes the tap to switch feature 2021-06-11 01:15:32 +02:00
Jean-François Milants b1925ff286 Minor improvements: use std::make_unique when creating unique_ptr, check the code is running from an IRQ before calling xQueueSendFromISR or xQueueSend) 2021-06-10 21:20:27 +02:00
Jean-François Milants caca6a5cff Fix stack corruption when exiting an app (the app was destroyed while it was executing the button handler). 2021-06-10 21:19:11 +02:00
Jean-François Milants ff00873f97 Fix build for recovery firmware. 2021-06-06 20:20:55 +02:00
Jean-François Milants 7f9cc51b05 Initialize SystemTask, DisplayApp and HeartRateTask as global static variable instead of variables on the heap. We don't need them on the heap as we know their size at build time, it'll reduce memory fragmentation and it'll make memory analysis easier. 2021-06-06 15:56:03 +02:00
JF002 79f0fcb07a
Add the maximum memory used by LVGL in SystemInfo app. This will help the developers to size the memory buffer allocated to lvgl. (#408) 2021-06-01 21:03:29 +02:00
JF002 1b6acdedc2
Enable various compilation flags to reduce the binary size (#401)
* Add the following compilation flags:
 * -fno-exceptions and -fno-non-call-exceptions : disable exception handling
 * -fno-rtti : disable run time type information (needed by dynamic_cast, for example)

These flags reduce the binary size by about 100KB!

Also, -fstack-usage generate debug info (not in final binary) to allow tools like Puncover to do a stack analysis.

* Remove unused CMake variables in CMake_nRF5x.cmake (duplicated in src/CMakeLists.txt).
Replace -O0 by -Og in DEBUG builds. This generates a smaller binary (small enough for the internal memory) that is debugger friendly.
2021-06-01 21:03:01 +02:00
JF002 c0b0f8cb73
Remove debug defines (DEBUG & DEBUG_NRF_USER) from the build. These debug can be useful for debugging purposes but not in production (release). (#400)
This reduces the size of the binary by about 6KB!
This also removes filepath that were embedded into the binary (.bin) file.
2021-06-01 21:02:15 +02:00
JF002 287399f993
Navigation app: reduce memory usage (#362)
* Navigation app:
 - Renaming and reformatting according to coding conventions
 - declare iconMap as constexpr and use char* instead of std::string

This reduces the flash usage from 424644B to 419344B (-5300B)!
2021-06-01 21:01:32 +02:00
Riku Isokoski c6969268fc Keep button visible, but disabled 2021-05-26 16:13:40 +03:00
Riku Isokoski b393105082 improve ui and optimize code 2021-05-26 15:15:10 +03:00
Jean-François Milants f88c0f41fa Fix recovery DisplayApp. 2021-05-21 11:56:50 +02:00
Jean-François Milants 7c9513be8a Set version to 1.1.0. 2021-05-21 11:37:32 +02:00
Florian 13e3463276
Timer App (#355)
* built timer app

* Style improvements

* making sure buttons stay hidden when the app is reopened and reappear after the timer runs out

* more sensible calculations of time deltas. eliminated that mysterious scaling factor

* changing the timer icon
2021-05-20 20:43:54 +02:00
Florian 8c3b250dbf
removed an empty assignment that caused a compiler warning (#372) 2021-05-20 20:34:21 +02:00
Jean-François Milants 9ab298c09e Fix wrong initialization of 'pinPowerPresent' pin that would prevent the touchpanel from working correctly when the device boots while connected to the charger. 2021-05-17 09:52:31 +02:00
Avamander 8568b5f31b Updated license header year 2021-05-17 02:16:50 +03:00
Avamander f6f28a95f6 Used a macro for UUID generation, switched from C-style casts to reinterpret_cast, renamed callback 2021-05-17 02:08:12 +03:00
David Ventura 9342d62a44
Emit event on power-present toggle (#320)
* Emit event on power-present toggle

* clang-format on changes

* also update battery status on any event

* update comments; remove double battery update

* Fix formatting

* Vibrate shortly on charging event

* debounce charge event
2021-05-16 21:13:22 +02:00
JF002 5b2472c4bc
Merge pull request #347 from jedi2light/feature-show-git-commit-hash-short
Feature: Store and show git short ref on PineTime alongside other firmware information
2021-05-16 11:37:39 +02:00
JF002 b588439719
Merge pull request #354 from Raupinger/notification-title-fix
Notification title fix
2021-05-16 11:20:09 +02:00
Florian Kraupa 2627ef760e better handling of long notification titles 2021-05-16 00:16:33 +02:00
Jean-François Milants d7fa000b85 DisplayApp : returnApp was renamed ReturnApp() (manual fix after multiple merges). 2021-05-15 22:38:49 +02:00
JF002 09977c28c0
Merge pull request #298 from joaquimorg/StepsApp
New Steps app
2021-05-15 22:32:40 +02:00
JF002 4e95e4b538
Merge pull request #345 from Itai-Nelken/patch-1
fix a formatting issue and 2 typos in gettingStarted-1.0.md
2021-05-15 09:59:55 +02:00
JF002 783dde948b
Merge pull request #348 from CoderThomasB/fix-typo-doc/contribute.md
Fixed typos in the doc/contribute.md using google docs’s spelling check system
2021-05-15 09:58:38 +02:00
JF002 204d63697c
Merge pull request #349 from Avamander/patch-2
Switched to booleans for infinite while loops
2021-05-15 09:57:22 +02:00
JF002 48018fc1d8
Merge pull request #350 from Avamander/patch-3
Added braces to a few if statements
2021-05-15 09:56:48 +02:00
JF002 a0acc0e8d2
Merge pull request #351 from Avamander/patch-5
Fixed a naming inconsistency of DisplayApp::ReturnApp and a few formatting errors
2021-05-15 09:55:59 +02:00
JF002 0df009ba9f
Merge pull request #352 from Avamander/patch-6
Improved clang-tidy configuration for less noise
2021-05-15 09:55:10 +02:00
Avamander 3214f98ac6 Improved clang-tidy configuration for less noise 2021-05-14 13:01:05 +03:00
Avamander d29d513244 Fixed a naming inconsistency of DisplayApp::ReturnApp and a few formatting errors 2021-05-14 12:46:51 +03:00
Avamander e54163b7c2 Added braces to a few if statements 2021-05-14 12:43:29 +03:00
Avamander 33f965f326 Switched to booleans for infinite while loops 2021-05-14 12:40:46 +03:00
CoderThomasB 7571d477f9 Fixed typos in the doc/contribute.md using google docs’s spelling check system 2021-05-14 19:28:54 +12:00
Stoian Minaiev a4de61e1f5 git: show git short ref hash on SystemInfo(first screen) and FirmwareValidation screen alongside other information 2021-05-14 01:09:40 +03:00
Stoian Minaiev e04c8ee95e git: store git short ref hash on build stage to Version.h 2021-05-14 01:08:37 +03:00
Stoian Minaiev d82a1c5225 docker: add git system package to image 2021-05-14 01:07:32 +03:00
Itai Nelken e05ac21039
Update gettingStarted-1.0.md 2021-05-13 14:52:23 +03:00
Itai Nelken 117da314bc
Update gettingStarted-1.0.md 2021-05-13 14:48:11 +03:00
Jean-François Milants c82dee2def Add missing pictures. 2021-05-13 13:21:18 +02:00
Jean-François Milants 88e3790fbf Merge branch 'develop' of github.com:JF002/Pinetime into develop 2021-05-13 13:20:19 +02:00
Jean-François Milants afd5ac0d4a Add quick user guide for InfiniTime 1.0 2021-05-13 13:19:48 +02:00
JF002 456a57215a
Merge pull request #336 from jedi2light/patch-1
SystemInfo app screen
2021-05-10 20:33:25 +02:00
Stoian Minaiev 9a8824c35a
SystemInfo app screen
First screen. Let the build date and build time string be centered as well as the others
2021-05-10 15:13:33 +03:00
JF002 9e1ce2d423
Merge pull request #266 from Caton101/patch-1
Add Python modules to build instructions
2021-05-09 11:21:05 +02:00
JF002 937dc340f1
Merge pull request #324 from MFAshby/fix_stop_crash_315
Fix stopwatch crash after stop pressed
2021-05-09 11:17:05 +02:00
Martin Ashby 3a938236d4
Fix a possible double free in StopWatch::Refresh.
The lv_obj_del is called on btnStopLap  when transitioning to the
initial state, however the variable isn't then set to null. A subsequent
call to Refresh would attempt to delete the already freed object. This
could be triggered by stopping the stop watch, then pressing the
physical button on the watch.

Fixes https://github.com/JF002/InfiniTime/issues/315
2021-05-03 08:11:58 +01:00