Commit Graph

554 Commits

Author SHA1 Message Date
Émilie Feral
0bc2594489 [ion] Storage: deferencing nullptr? 2018-05-15 11:02:35 +02:00
Romain Goyet
4718fbe64e [ion/device] Fix the flasher bridge 2018-05-11 16:43:16 +02:00
Romain Goyet
a38369aa98 [ion] Revert blackbox's object list 2018-05-09 18:11:45 +02:00
Romain Goyet
aad95380f5 [ion] Multithreaded framebuffer comparison 2018-05-09 18:11:45 +02:00
Romain Goyet
806b87ef36 [ion] Add the ability to build blackbox as a shared library 2018-05-09 18:11:45 +02:00
Romain Goyet
49e1b0e373 [ion/device] Give an opportunity to slow down the whole machine 2018-05-09 17:52:09 +02:00
Romain Goyet
324ff8277b [ion/device/display] Always use send_data/send_command functions
Wrap all accesses to DataAddress and CommandAddress into 3 functions
2018-05-09 17:52:09 +02:00
Romain Goyet
7851aa6fff [ion/device] Remove useless delays in the Flash operations
The datasheet advises to wait for BSY to be cleared before performing
any operation on the Flash. That being said, in the only two cases where
BSY could be set in the first place (writing to or erasing the flash),
we already wait for it to be cleared. There's therefore no need to
double check it afterwards.
2018-05-09 11:03:01 +02:00
Romain Goyet
306904aec2 [ion/device] Proper flash cache flushing (fix #439) 2018-05-09 11:03:01 +02:00
Romain Goyet
26edd70bd7 [ion] Re-enable the Flash I/D cache after flushing it 2018-05-09 11:03:01 +02:00
Romain Goyet
6556751d59 [ion] Use a distinct Device::Flash namespace 2018-05-09 11:03:01 +02:00
Romain Goyet
1785288e19 [ion] Clean an unused file 2018-05-08 14:31:35 +02:00
Romain Goyet
bc3c517084 [ion] Discard useless small file 2018-05-08 14:31:35 +02:00
Romain Goyet
f4c5e4b701 [ion] Remove unneeded files 2018-05-08 14:31:35 +02:00
Romain Goyet
6d214a79b4 [ion] Sort the device/usb folder 2018-05-08 14:31:35 +02:00
Romain Goyet
3e57d75a71 [ion] Add a VBLANK command to the bench 2018-05-08 14:16:18 +02:00
Romain Goyet
a6cc87183e [ion] Tell when on the bench 2018-05-08 14:16:18 +02:00
Léa Saviot
4d259442b5 [build/ion] Remove code used for debug.
Change-Id: I41802f79e7103204991edf38dff94b1c0a3a23ea
2018-05-08 14:13:34 +02:00
Léa Saviot
4a0fe345e2 [ion/dfu_interface] De-activate Flash Programming after write operations
Change-Id: I2a9395a4f7f6e70f0d7981ed07684f230678c212
2018-05-08 10:55:40 +02:00
Léa Saviot
c59778a01e [ion/dfu_interface] Check BSY bit before each CR register access
Change-Id: I4999906c694fed30e6101c8c5e1f33f1957db397
2018-05-08 10:55:40 +02:00
Romain Goyet
a29c775663 [ion] Encode the serial number in Base64
Also, expose serialNumber() in Ion and keep "copySerialNumber" in
Ion::Device. This allows the DFU bootloader to remain .bss-free.
2018-05-04 17:31:41 +02:00
Émilie Feral
235ec73e8e [emscripten] Fix alignment issue
Emscripten expects 32 and 16-bit memory accesses to be aligned.
2018-04-18 11:20:39 +02:00
Romain Goyet
2f1ebf7310 [emscripten] Work around alignment issues
Emscripten expects 32 and 16-bit memory accesses to be aligned.
This happens automatically most of the time, but in the case of our
Storage class, where we happen to read uint16_t out of a char array,
memory accesses might not be aligned. In that case, we rebuild the
uint16_t manually out of two bytes.
2018-04-18 10:04:18 +02:00
Romain Goyet
c4330ae7b1 Use <span> instead of <a> for the keys
Indeed, a keypress on the Enter key submits the last active links,
resulting in double inputs.
2018-04-18 10:04:18 +02:00
Léa Saviot
65744cb9f4 [ion] Fix SRAM end address.
Change-Id: If4fbadd42ffbc8868112f1f2b7cfb97266cbf974
2018-04-16 10:48:11 +02:00
Léa Saviot
ee6997a07d [usb] Implement jumpReset in assembly.
This avoids unwanted stack modifications emited by the compiler.

Change-Id: I2a2a13ee5395b95ed676f6634be86eeb148d55fd
2018-04-16 10:48:11 +02:00
Léa Saviot
f1849cf17e [usb] Invalid data and instruction caches after locking Flash
Change-Id: I154ef581a640b41c7f9815e0aae7035f7bbefe8a
2018-04-16 10:48:11 +02:00
Léa Saviot
e846e31029 [usb] Clear interrupt on "false" ENUMDNE
Fixes a bug where the device would not get enumerated even if the plug
state was detected (an ENUMDNE interrupt had not been cleared, thus the
new enumeration attempt was not detected).

Change-Id: I19622221fc077965ed3cab5322944e4c2c89fde4
2018-04-16 10:48:11 +02:00
Léa Saviot
37a699f1ab [usb] Clearer USBEnumeration event detection.
Change-Id: I5c15f7cda6fc7132392423ef34beed135b9981ab
2018-04-16 10:48:11 +02:00
Léa Saviot
d2f551a818 [usb] Add waiting before writing on the FLASH.CR register
Change-Id: Ie3dcbe14e031b7149f31c145cf69773b1ece5c26
2018-04-16 10:48:11 +02:00
Émilie Feral
d9de44a28f Merge branch 'master' of ssh://git.numworks.com/Epsilon 2018-04-11 16:11:15 +02:00
Émilie Feral
934e8feca5 [emscripten] Handle None event from SDL 2018-04-11 16:07:46 +02:00
Léa Saviot
d87e71d847 [usb] Use proper function to scan registers.
Change-Id: I37f0f8ce105c7791fa8890013d672cca7dff4126
2018-04-11 15:40:41 +02:00
Léa Saviot
555ced4941 [usb] If needed, reset the device inside Calculator::Poll
Change-Id: I2d9e2eef4e04b1042a2524a4267569324ad8bcce
2018-04-11 15:40:41 +02:00
Romain Goyet
1b8123e66a [ion] Error-out on any global variable that needs a constructor 2018-04-10 15:09:30 +02:00
Romain Goyet
628992680b [ion] Ion::Storage is not a global variable anymore 2018-04-10 15:09:30 +02:00
Romain Goyet
c090e2aa13 [ion] Remove useless macros 2018-04-10 15:09:30 +02:00
Romain Goyet
e072630437 [ion] Get rid of FORCE_LINK 2018-04-10 15:09:30 +02:00
Léa Saviot
b7fd109f93 [ion] Fix hexNumber().
Change-Id: Ic12e3f17ec5e6508613034c4b259eee2fd103be4
2018-04-10 10:17:21 +02:00
Léa Saviot
0e578fa0e6 [ion] Fix Ion::getSerialNumber for simulator.
Change-Id: Id6a616695bc43718751a3e3861d0410aa0b35416
2018-04-09 16:30:51 +02:00
Léa Saviot
0419713de0 [ion/usb] Remove Ion::USB::removeSoftDisconnect()
Change-Id: I02268dc52aefa9d9d90ed559757f005af49f4732
2018-04-09 15:36:44 +02:00
Léa Saviot
0e977bac00 [ion] Use dummy usb.cpp in simulator.
Change-Id: Id7f0e110a661372702d550883b6d341c1b5915d4
2018-04-09 15:35:50 +02:00
Romain Goyet
256ef9a5c6 [ion] Don't call KDColorYellow which doesn't work on the flasher 2018-04-09 14:04:09 +02:00
Romain Goyet
d0dff5e7fe [ion] The flasher starts on a yellow screen 2018-04-09 13:37:11 +02:00
Romain Goyet
5155957c5a [ion] The bench starts on a white screen 2018-04-09 13:36:54 +02:00
Romain Goyet
4a19c79df8 [ion] Add a Print bench command 2018-04-09 13:36:36 +02:00
Romain Goyet
e543e83766 [usb/flasher] Enable USB before jumping in, correct keyboard logic 2018-04-09 11:57:17 +02:00
Romain Goyet
9aed025abc [usb] Calculator::PollAndReset can ignore the keyboard 2018-04-09 11:04:30 +02:00
Romain Goyet
6c33963e04 [usb] Don't exit from the flasher 2018-04-09 10:57:19 +02:00
Romain Goyet
0e1410932c [usb] Fix the build 2018-04-09 10:55:30 +02:00