Commit Graph

752 Commits

Author SHA1 Message Date
Émilie Feral
b33a778ccb [ion] N0110 linker script: fix symbol name of section
internal_to_external
2020-02-12 15:13:18 +01:00
Léa Saviot
973c2149d4 [ion/battery] Battery level has some hysteresis
This prevents a blinking battery pictogra wwhen the battery level is at
the limit between two states.
2020-02-12 15:13:15 +01:00
Léa Saviot
78eea601c7 [ion/device] Prevent the user from leaving DFU during software download
We prevent the use of the Back key to leave DFU after a flash erase
operation. This way, we prevent the user from interrupting a software
download. After every software download, the calculator resets, which
unlocks the "exit on pressing back"
2020-02-12 15:13:15 +01:00
Léa Saviot
f1f4e43159 [ion/console] Default ion sources have console_stdio, not _display 2020-01-07 13:50:02 +01:00
Léa Saviot
57ceda5ac0 [bench] USBPlugged command 2020-01-06 14:31:37 +01:00
Émilie Feral
588c05f6b4 [ion] Reset: Add memory barriers before/after calling for a core reset: 2019-12-23 11:52:00 +01:00
Émilie Feral
9fca8e8b8b [ion] Reset: factorize cache disabling 2019-12-23 11:52:00 +01:00
Émilie Feral
7b7447b110 [ion] N0110 cache: clean isb/dsb calls 2019-12-23 11:52:00 +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
É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
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
9d154e4e97 [ion] Exam mode: add assertion 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
f4de842a86 [ion] Change exam mode to have 3 states (off, standard, Dutch) 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
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
79ea22bc64 [ion] N0110 board: fix MPU configuration on FMC memory bank 2019-12-09 15:52:38 +01:00
Émilie Feral
8b0d8aa935 [ion] Fix bench build 2019-10-17 11:53:48 +02:00
Émilie Feral
7d48e84ac3 [ion] Fix flasher build 2019-10-17 11:53:48 +02:00
Romain Goyet
fde1a87998 [ion/device/n0100] Remove an LTO warning 2019-10-16 10:01:00 +02:00
Léa Saviot
069319a7ae [ion/device/timing] Fix SysTick when changing HCLK
There will still be some drift due to the systick counter reset
2019-10-15 16:06:34 +02:00
Romain Goyet
f61529fe20 [ion/device] Discard ARM.exidx and ARM.extab sections 2019-10-01 16:57:17 +02:00
Romain Goyet
e81426f93b [build] Clean the different targets 2019-10-01 15:38:27 +02:00
Émilie Feral
4d593a6149 [poincare] PrintFloat: take into account the distinction between char
and glyph length in ConvertFloatToText
2019-09-26 11:26:48 +02:00
Romain Goyet
c838c4657c [build] Use rule_for/rule_label when needed 2019-09-18 17:46:38 +02:00
Émilie Feral
36278b5aec Merge branch 'master' into version-12 2019-09-18 11:00:03 +02:00
Romain Goyet
9e59e8e38e [ion] Homogenize type definitions to avoid LTO warnings 2019-09-18 10:52:20 +02:00
Émilie Feral
24b2ef29ce [ion] Remove unused variable 2019-09-05 16:35:16 +02:00
Léa Saviot
b0b10f184e [poincare/print_float] convertFloatToText -> ConvertFloatToText 2019-08-08 17:22:06 +02:00
Émilie Feral
059c596a80 Makefiles: avoid building all sources for each target; introduce more
modularity
2019-08-08 17:22:01 +02:00
Émilie Feral
a4dfe2eb9e [scripts] Remove EPSILON_ONBOARDING_APP flag 2019-08-08 16:32:18 +02:00
Émilie Feral
697b4a6d4d [scripts] Remove unused EPSILON_DEVICE_BENCH flag 2019-08-08 16:29:38 +02:00
Émilie Feral
86487567d4 [scripts] Makefile: Remove objs variable and add all_objs 2019-08-08 16:29:38 +02:00
Émilie Feral
2ddb586bdc [scripts] Remove EPSILON_USB_DFU_XIP flag: specify the right dfu sources
for each target
2019-08-08 16:29:38 +02:00
Émilie Feral
2baf79a08b [ion] Linker script N0110: add rodata symbol to internal flash to fix
building with DEBUG=1
2019-08-08 16:29:38 +02:00
Émilie Feral
c89c271f8c [ion] Fix assert which did not compile 2019-08-08 16:29:38 +02:00