Commit Graph

11243 Commits

Author SHA1 Message Date
Léa Saviot
0412a45cea [escher/responder] Inline some methods 2019-12-20 11:49:30 +01:00
Romain Goyet
5b00192b67 [ion/device] Remove ad-hoc compiler optimizations
Since we hand-specify which regs/regs.h functions shoudl be inlined, we
don't need to depend on specific compiler optimization levels.
2019-12-20 09:41:43 +01:00
Romain Goyet
d0660b6543 [ion/device] Force inlining compile-time bit ranges
Most of the time register operations can be optimized to a single
assembly instruction. That being said, aggressive -Os optimization can
lead the compiler to think that factorizing calls to setBitRange is a
good idea.

But we really want register operations to be inlined (and therefore
optimized as a single instruction), so we enforce inlining setBitRange
and REGS_FIELD macros.
2019-12-20 09:41:43 +01:00
Romain Goyet
ae8c111da5 [ion] Prevent duplicating SFLAGS
Using $(sort) in the Makefile has the side effect of removing duplicates
2019-12-20 09:41:43 +01:00
Romain Goyet
2c7a26103b [ci] Use a recent ARM GCC toolchain 2019-12-19 21:46:21 -05:00
Émilie Feral
e13425d231 [apps] Add comment about LED color in Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
0254266803 [ion] ExamMode: add comment 2019-12-19 15:52:45 +01:00
Émilie Feral
3454265d7e [ion] ExamMode: change firstOneBitInByte name to
numberOfBitsAfterLeadingZeroes and add comment
2019-12-19 15:52:45 +01:00
Émilie Feral
73673384ae [ion] Avoid unclear, over-optimized computation in modulo 3 2019-12-19 15:52:45 +01:00
Émilie Feral
902cc64d32 [apps] GlobalPreferences: add an assertion to ensure the the fetched
exam mode can be casted in GlobalPreferences::ExamMode
2019-12-19 15:52:45 +01:00
Émilie Feral
425f0cb459 [apps] GlobalPreferences: remove useless assertion 2019-12-19 15:52:45 +01:00
Émilie Feral
96c63bd4a5 [apps][ion] Yellow LED is equivalent to Dutch exam mode, do not update
the LED color (with plugging/charging events) if the displayed color was Red or Yellow
2019-12-19 15:52:45 +01:00
Émilie Feral
01ab6b5aeb [build] Fix test.elf build 2019-12-19 15:52:45 +01:00
Émilie Feral
7d8bd45047 [build] Fix target two_binaries 2019-12-19 15:52:45 +01:00
Émilie Feral
9d154e4e97 [ion] Exam mode: add assertion 2019-12-19 15:52:45 +01:00
Émilie Feral
2ccdc2d0dc [apps] Fix messages regarding Dutch exam mode in non-English languages 2019-12-19 15:52:45 +01:00
Émilie Feral
2fc8799fee [ion] Exam mode on device: Fix FetchExamMode and IncrementExamMode 2019-12-19 15:52:45 +01:00
Émilie Feral
f5e7c016e8 [apps] GlobalPreferences: avoid multiple calls to examMode() 2019-12-19 15:52:45 +01:00
Émilie Feral
7fc730597c [apps] Fix exam mode messages 2019-12-19 15:52:45 +01:00
Émilie Feral
8c6a2836de [settings] Fix row initialization in sub menus 2019-12-19 15:52:45 +01:00
Émilie Feral
a3774fb510 [settings] Exam mode: reactivate the current exam mode (stick to Dutch
exam mode if it is already on)
2019-12-19 15:52:45 +01:00
Émilie Feral
de34c0b8db [apps] Change pop-up message for Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
6ecfe9c5db [apps] Two exam modes in settings: Standard & Dutch 2019-12-19 15:52:45 +01:00
Émilie Feral
6cd98a3a48 [apps] AppsContainer::activateExamMode can make the LED blink in orange
or red according to the chosen exam mode
2019-12-19 15:52:45 +01:00
Émilie Feral
49d2a248da [settings] Fix messages for Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
5491dee5ce [calculation][solver] Do not display exact solutions in Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
da735b93a4 [apps] GlobalPreferences: change exam mode API 2019-12-19 15:52:45 +01:00
Émilie Feral
f4de842a86 [ion] Change exam mode to have 3 states (off, standard, Dutch) 2019-12-19 15:52:45 +01:00
Émilie Feral
82fb00689e [apps/settings] Message: add messages to activate Dutch exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
510151c7db [apps/home] Prevent from entering Python application in exam mode 2019-12-19 15:52:45 +01:00
Émilie Feral
6a7ca32630 [apps/home] Add messages: ForbidenAppInExamMode 2019-12-19 15:52:45 +01:00
Léa Saviot
b155af0c0d [ion/external_flash] Finer flash sectors
Instead of 128 sectors of 64K, there are now 8 sectors of 4K, 1 of 32K
and 127 of 64K. This makes a more finely erasable flash, which is needed
for the exam mode.
2019-12-19 14:47:25 +01:00
Romain Goyet
273834ee84 [ion/cache] Improve cache cleaning
- Avoid fetching CCSIDR twice
 - Use for loop instead of do/while
 - Only compute the target register once
 - Avoid an useless nop
2019-12-16 10:22:47 +01:00
Romain Goyet
67302a90c7 [ion/cache] Follow CMSIS' order 2019-12-16 10:22:47 +01:00
Romain Goyet
d25346d82f [ion/cache] Use DCSW to reduce code duplication 2019-12-16 10:22:47 +01:00
Romain Goyet
34e6141bdb [ion/regs] Avoid code duplication 2019-12-16 10:22:47 +01:00
Léa Saviot
6762bb05af [ion/cache] Add missing memory barrier
__asm volatile("nop") creates a memory barrier that prevents a crash on
the flasher.
Scenario: On the n0110, build flasher.bin, flash it at 0x20030000, build
bench.bin, flash it using the flasher at 0x20008000 -> the flasher cannot
make the device jump to the bench and crashes in the method
Ion::Device::Reset::Jump, inside Ion::Device::Cache::disableDCache().
2019-12-13 10:33:48 +01:00
Émilie Feral
e5bb8f4b21 [ion] Add TODOs 2019-12-12 17:30:42 +01:00
Émilie Feral
21756a5f4a [ion] Make name consistent 2019-12-12 17:30:42 +01:00
Émilie Feral
ec4e3eca92 [ion] Linker scripts: build only 1 binary for n0100 and 2 for n0110 and
ensure to fill the sector dedicated to the exam mode with 1
2019-12-12 17:30:42 +01:00
Léa Saviot
88d52c6e9c [apps/apps_container] Fix screen noise before the logo on n0100
Push a white screen before fetching the examm mode, as this fetch takes
some time and the screen noise becomes visible on a n0100 when
downloading a new software.
2019-12-12 15:45:33 +01:00
Émilie Feral
070d362f15 [python] Improve comment 2019-12-12 14:16:13 +01:00
Léa Saviot
1b7f9cf7b4 [apps/on_boarding] Fix LED clash between on boarding and exam mode 2019-12-11 13:51:38 +01:00
Léa Saviot
9f592a0bc4 [ion/n0110] Persist exam mode through reset 2019-12-11 13:51:38 +01:00
Léa Saviot
762f67d996 [ion/device] Flash driver handles Internal and external flash 2019-12-11 13:51:38 +01:00
Léa Saviot
ebc5843795 [apps/ion/exam_mode] Store the exam mode activation in the flash
This way, it is not cleared by a reset
2019-12-11 13:51:38 +01:00
Émilie Feral
e550005e43 [settings] Enable exam mode reactivation 2019-12-11 13:51:38 +01:00
Émilie Feral
79ea22bc64 [ion] N0110 board: fix MPU configuration on FMC memory bank 2019-12-09 15:52:38 +01:00
Léa Saviot
53b8a6845e [github/workflows] Add beta build tests 2019-12-06 15:22:00 +01:00
Léa Saviot
4bc99cc530 [apps/Makefile] Fix update prompt build
make -j8 output/release/device/n0110/epsilon.onboarding.update.two_binaries
made a compilation error
2019-12-06 15:22:00 +01:00