Commit Graph

106 Commits

Author SHA1 Message Date
Émilie Feral
548ac8902e [ion] Init FPU before calling static object contructors
Change-Id: I4e29825183f8014b237b213452914764f9df8d62
2016-12-09 11:01:43 +01:00
Romain Goyet
0ea0a0139a [ion] Initialize static C++ objects
Change-Id: I8ee7d11985c5de61fb09bf69a02867f2a0d40425
2016-12-08 15:02:30 +01:00
Romain Goyet
6f5a3cf48f [libaxx] Explicitely define __cxa_pure_virtual
Change-Id: I07315f1bf84771a2784788e0d0eea4360245701d
2016-12-08 14:48:47 +01:00
Romain Goyet
ca78e007cf [ion/device] SD card initialization
Change-Id: I178f8be7063c86a400e968f85988f34469c4acd5
2016-11-24 18:37:40 +01:00
Romain Goyet
d905f01bf1 [ion/device] Add SDIO regs
Change-Id: I4b1df172f5334541ee7178759b9e4348b9b4b9a3
2016-11-24 18:37:40 +01:00
Romain Goyet
823d19101c [ion/device] implement pullRect
Change-Id: I648a8da134a26d17c763cccb0be20609681d99eb
2016-11-21 14:07:50 +01:00
Romain Goyet
d9216522dc [ion/emscripten] Bigger buttons on mobile
Change-Id: I9326ab9a6dff6490de79ea75b9e1e5c2ecde4818
2016-11-21 14:04:16 +01:00
Romain Goyet
5dc34dd387 [ion] Emscripten backend handles text input
Change-Id: I615845e2b75b99b2a666cf956ed6cc219c95b204
2016-11-14 15:46:56 +01:00
Romain Goyet
5d9a3c2c92 [ion] Emscripten handles events from click
Change-Id: I81116dfd829fafc60d8aafd5edb7a925780900ff
2016-11-14 15:46:50 +01:00
Romain Goyet
f5ea9cb2d3 [ion] Introduce Ion::Events::None
Which allows Ion::Events::getEvent to be non-blocking

Change-Id: I2715b10ace2ecbac153b0f7d00ea5f2ca5de399c
2016-11-11 16:06:29 +01:00
Émilie Feral
1556ec3d2b [ion] adjust simulator to new keyboard
Change-Id: Ib0baddf88f74621c21276746161d2d0bdb68942e
2016-11-10 17:29:48 +01:00
Romain Goyet
e508bc47b7 [ion/device] Update to newer GPIOs
Change-Id: Ifb54d974c73b618971fee511c92b87b32b014714
2016-11-10 17:29:48 +01:00
Romain Goyet
b87f06e3a2 [ion] Update the Event model
Change-Id: I41a53caeb7dd8a15e7934f49675f6a53be8fe7be
2016-11-10 17:29:48 +01:00
Romain Goyet
23f41e1b89 [ion/device] Migrate to 16-bits FSMC
Change-Id: I27af3425b631900b4d6041a4f890847e07808de6
2016-11-07 17:09:59 +01:00
Romain Goyet
ade7f0480b [ion] Initial emscripten support
Change-Id: Id76a45c5c723fae11387e20458bc9555689b9a48
2016-11-06 12:06:02 +01:00
Romain Goyet
3702af0f11 [ion] The shared routines are not always needed
Namely, the keydown to getevent routine should eventually not be shared

Change-Id: Ie3afabe9cc1cd7503dc3de06928471edd4f1f22b
2016-11-06 12:04:59 +01:00
Romain Goyet
973a013d8b [ion] Simulator uses the physical keyboard
Change-Id: I843faaa35931eae59bbe2d75eab36bc5820fb68e
2016-10-27 14:59:40 +02:00
Romain Goyet
5a2f12ad9f [ion] Replay implementation of Ion::Events::getEvent
Change-Id: Idc6270ab0ebdfed5973c355a03f8bca0ba3f7b1f
2016-09-28 15:44:33 +02:00
Romain Goyet
6077a72ae3 [ion] Provision to clock the CPU at 96 MHz
Change-Id: I397ff23941dfff3ea3c2e217c0fb1ba242326cfb
2016-09-28 15:44:20 +02:00
Romain Goyet
d6c52ac3d0 [ion] Avoid explicit namespaces when they're not needed
Change-Id: Ibe523d0aadaf4d408f915d705475fcd779caa2a7
2016-09-21 13:57:00 +02:00
Romain Goyet
c55c4aba37 [ion] Increase the stack size to 32 KB
Turns out 4K was too small for our usage pattern (we measured an
overflow when drawing function curve - probably because we store a
little bit of bitmap data on the stack). So the same area was used for
the heap *and* the stack, causing terrible memory corruption.

We could use a stronger pattern (stack on the SRAM boundary + MPU to
trigger an exception when overflowing the stack) to prevent memory
smashing.

Change-Id: I4d187e154322f18e1e7deddd75f7242af777ade3
2016-09-21 13:52:26 +02:00
Romain Goyet
7ab49e9371 [ion] Remove the framebuffer from the memory map
Change-Id: I9b8aaacc93ec1eac54045a1d654986e1777ba4ad
2016-09-21 13:51:52 +02:00
Romain Goyet
e3c6264068 [ion] Remove _liba_heap_start, simply use _heap_start
Change-Id: I395762275f3aa1832210dfc3faae9c0eefb91d9e
2016-09-21 13:50:58 +02:00
Romain Goyet
66298f5cb6 [ion] Enable building with --gc-sections
Change-Id: Ibddb03d5fc95f99954583a51c02257dfcba3a326
2016-09-16 11:43:14 +02:00
Romain Goyet
09309d535b [ion] Update the linker script for the device
Change-Id: I000b9d91707be06a808cc92a499526087d8a6d50
2016-09-16 11:43:14 +02:00
Romain Goyet
8d1f6b8f1d [ion] Actual device suspend
Change-Id: I572be97169f8042122649fa7144643d8fdc217d7
2016-09-16 10:38:08 +02:00
Romain Goyet
0645a799f9 [ion] Regs now have a SCR register for Cortex M4
Change-Id: I890e13ef2fed1bc7b9af06dfb15a6057e183c31f
2016-09-16 10:38:08 +02:00
Romain Goyet
99691c8e3f [ion] device/led now supports suspend/resume
Change-Id: Icff96947d94659d035a690cb53233d2bc77b285e
2016-09-16 10:38:08 +02:00
Romain Goyet
284a42c5a3 [ion] device/display now implements suspend/resume
Change-Id: Icdf99ea9a41e740df6825ad6349967320f0432b7
2016-09-16 10:38:08 +02:00
Romain Goyet
b5ec82b488 [ion] Remove a warning about an unused variable (m_index in ADC)
Change-Id: I678147f682a3f132991a9fa2ca8586c458ceb6de
2016-09-15 20:47:22 +02:00
Romain Goyet
99a4e3de91 [ion] Enable suspend/resume
Change-Id: I1fe580de7f98b95c768416ca889a7d74dad851ca
2016-08-31 17:07:41 +02:00
Romain Goyet
a380bbdaad [ion] Simpler pixel pushing
Change-Id: Ifdc461a80375d03d10a55230225f4d0465fada44
2016-08-30 15:21:55 +02:00
Romain Goyet
de449606d5 [ion] Cleanup
Change-Id: Ie978e8554f181d8d46fbc535c58d1a9021deb7c9
2016-08-29 16:58:52 +02:00
Romain Goyet
19c484640f [ion] Measure the battery voltage
Change-Id: Ic3c05eb65e2db3a66f2d2413821a0c121facd98f
2016-08-29 16:55:48 +02:00
Romain Goyet
a46e14f238 [ion] Fix a typo
Change-Id: Icf984602b58ef1c0ace87f2a2efaa75a4a6fc433
2016-08-29 13:38:06 +02:00
Romain Goyet
55ce65be9c [ion] Set the backlight on boot
Change-Id: Ifdb7a14ff4667633b6aed85fc61b88dd4467b3bf
2016-08-29 13:38:06 +02:00
Romain Goyet
831c42796b [ion] Add battery-related functions
Change-Id: Ib63b48140a8347d0d07902d956a3685fb040c481
2016-08-29 13:25:14 +02:00
Romain Goyet
457b7215fd [Ion] Enable setting the LED's color
Change-Id: Ib3e25be8d180f9d19ad3a0d0861b210d8a702194
2016-08-23 17:29:07 +02:00
Romain Goyet
439f2702d8 [Ion] Remove C registers
Change-Id: Ic6330126b38ec58f1936862693b5874989499017
2016-08-23 17:07:16 +02:00
Romain Goyet
753a4a7cb5 [Ion] Move to C++
Change-Id: Id75fca5e92a3fdf18258015bcda7cd70297b0fdb
2016-08-23 16:30:15 +02:00
Romain Goyet
d2ff3457b5 [ion] Fix RGB/BGR ordering on ili9341
Change-Id: I5e3aa5c811af0bff74f82373c6867ac7f45422e2
2016-08-18 17:43:43 +02:00
Romain Goyet
fb4a67ae41 [ion] Ensure ion_sleep is not optimized out
Change-Id: Ifb468a8bc163acade32225b39aa261d552bdb4c9
2016-08-18 17:16:10 +02:00
Romain Goyet
827ec2fc20 [ion] Update the keyboard for NW8902
Change-Id: Ieb04e4b729d6fb17355410d0877576c46cbc0865
2016-08-18 17:15:49 +02:00
Romain Goyet
2eeec9e929 [ion] Clean ion_sleep
Change-Id: Ib71e7e535ecd2ee572d09f2e64f2cba9368c614f
2016-08-18 16:45:36 +02:00
Romain Goyet
809fdfdfab [ion] Cleanup
Change-Id: I14d1cb07cd075a40db4ab4e6246d5b3d1cc2140a
2016-08-18 16:36:49 +02:00
Romain Goyet
596d0d3876 [Ion] Much simpler display driver
Change-Id: Ia64a14ca5ed58f70590a27b968569832a0ecb722
2016-08-18 16:35:55 +02:00
Romain Goyet
a0aa16c504 [ion] Enable the FSMC
Change-Id: Ic564b819723bd5b1049ba5695095d7d9034cc665
2016-08-18 16:29:13 +02:00
Romain Goyet
1b233c5ee2 [ion] Clean the RCC class
Change-Id: I1c2c28baf1cce407ce06888a16e2eabe2be57b19
2016-08-16 14:17:36 +02:00
Romain Goyet
656eceb39c [ion] Split the regs headers
Change-Id: I5046ecb132bff215a1e256a70fe75d31a2c3fe2e
2016-08-10 14:19:11 +02:00
Romain Goyet
331bd3f480 [ion] Improve the register header
Change-Id: I109ad5779049e6ea7144492f7310b42933ecd626
2016-08-10 11:50:43 +02:00