Jeff Epler 7f744a2369 Supervisor: move most of systick to the supervisor
This code is shared by most parts, except where not all the #ifdefs
inside the tick function were present in all ports.  This mostly would
have broken gamepad tick support on non-samd ports.

The "ms32" and "ms64" variants of the tick functions are introduced
because there is no 64-bit atomic read.  Disabling interrupts avoids
a low probability bug where milliseconds could be off by ~49.5 days
once every ~49.5 days (2^32 ms).

Avoiding disabling interrupts when only the low 32 bits are needed is a minor
optimization.

Testing performed: on metro m4 express, USB still works and
time.monotonic_ns() still counts up
2019-11-18 11:01:23 -06:00
..
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-08-09 13:29:30 -07:00
2019-10-21 18:57:03 -07:00
2018-08-16 17:41:35 -07:00
2018-07-28 13:29:47 -04:00
2019-06-06 17:49:32 -04:00
2018-08-09 13:29:30 -07:00
2019-04-05 21:38:32 +02:00
2018-07-11 16:45:30 -04:00
2018-07-11 16:45:30 -04:00
2018-10-18 10:37:42 -07:00
2019-04-05 21:41:40 +02:00
2019-01-18 17:09:56 -08:00
2018-10-07 19:37:49 +02:00
2018-11-13 22:04:44 +01:00
2017-07-18 11:57:39 +10:00
2018-07-12 14:13:51 -04:00
2018-07-11 16:45:30 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2018-07-12 14:13:51 -04:00
2019-01-18 11:53:09 -08:00
2019-01-20 17:32:43 -08:00
2019-01-14 18:09:02 -08:00
2019-11-05 17:49:47 -08:00
2019-04-05 21:40:28 +02:00
2019-01-20 16:18:34 -08:00
2018-08-09 13:29:30 -07:00
2018-08-07 14:58:57 -07:00
2018-05-14 17:41:17 -04:00
2018-05-14 17:41:17 -04:00
2019-10-21 18:57:03 -07:00
2018-07-11 16:45:30 -04:00
2018-07-11 16:45:30 -04:00
2019-02-15 16:53:19 -08:00
2019-10-21 18:57:03 -07:00