Léa Saviot
d70c4c7205
[ion] Typo
2020-02-12 15:13:22 +01:00
Léa Saviot
9d6bab092f
[poincare/parser] Identifier is not already function -> symbol
...
We check the context: if an identifier is already a function, we
interpret it as such, otherwise it is a symbol.
This way, in the Equation app, x(x+1) is interpreted as x*(x+1)
2020-02-12 15:13:21 +01:00
Émilie Feral
a1b2cbb0a9
[ion] Unicode: clean warning
2020-02-12 15:13:19 +01:00
É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
c03c9086b8
[ion/utf8_helper] Add FIXME comment
2020-02-12 15:13:18 +01:00
Léa Saviot
8cf13adaf0
[apps/editor_controller] Handle deleted scripts in cleanStorageEmptySpace
2020-02-12 15:13:18 +01:00
Léa Saviot
961ba10122
[ion/events] shift+Left/Right/Up/Down can be repeated
2020-02-12 15:13:17 +01:00
Léa Saviot
30923ed4c6
[escher/text_area] Select up/down
2020-02-12 15:13:17 +01:00
Léa Saviot
ab48f8d879
[ion/events] if shift/alpha pressed, it is active
...
No need to press shift between ezach event -> one long shift press keeps
it active
2020-02-12 15:13:17 +01:00
Léa Saviot
bb69b2c131
[ion/events_modifier] Reindent
2020-02-12 15:13:17 +01:00
Léa Saviot
0209c6d2d4
[ion/storage] Increase size to 32K
2020-02-12 15:13:16 +01:00
Léa Saviot
4ffcace024
[ion/storage] Add TODO about code optimization
2020-02-12 15:13:16 +01:00
Léa Saviot
7e801906b8
[test/ion] Add Storage available space moving test
2020-02-12 15:13:16 +01:00
Léa Saviot
5853e96947
[apps/code] Remove EditorController::m_areaBuffer
...
This was a very large buffer that took a lot of RAM space (the size of
the storage). Instead of having it, we just move the available space of
the storage at the end of the edited script, and move it back when the
edition finishes.
This is slower but saves a lot of space.
2020-02-12 15:13:16 +01:00
Léa Saviot
b9bc9008ac
[ion] Detect long repeated events
...
This will be use for instance to sroll faster if the user presses the
directional keys for a long time
2020-02-12 15:13:15 +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
Ruben Dashyan
c3cf5c1ef4
Rename UCodePointUnknownX to UCodePointUnknown
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
Émilie Feral
de603befc5
[ion] main_sdl: Update the static sNeedsRefresh when actually refreshing the
...
screen
2020-01-13 15:44:44 +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
4c11e73ad3
[ion] UTF8Helper: fix CopyAndRemoveCodePoint to avoid copying truncated
...
code point in the buffer
2019-11-25 17:39:26 +01:00
Léa Saviot
5f7692686f
[ion/storage] Fix memoization dirtying when renaming a record
...
Don't forget to update the CRC32 of the record
Scenario : New funciton f(x) = 1, change it to parametric, rename it
a(t), creae a new function -> instead of being empty, it is has a
"ghost" value of [t 1].
2019-11-25 17:32:43 +01:00
Romain Goyet
5ef2200ffc
[ion/simulator/web] Remove a hack
...
Using SDL2, we don't need to preventdefault on space/arrow keydown
And if we do, we don't get "space" events in the simulator.
2019-11-19 09:45:00 +01:00