Commit Graph

1538 Commits

Author SHA1 Message Date
Bernhard Boser
59c3e25168
disable on boards tight on memory. add stddef.h to imports (not actually needed). 2020-12-01 18:39:24 -08:00
Dan Halbert
8b7c23c1ee address review comments 2020-12-01 20:01:14 -05:00
Mark
237385798c
Merge branch 'main' into bus_device 2020-12-01 15:47:16 -06:00
Scott Shawcroft
a975ef4971
Merge pull request #3695 from cwalther/movable
Add movable supervisor allocations
2020-11-30 16:00:55 -08:00
Scott Shawcroft
98cf7f67d4
Merge pull request #3773 from dhalbert/no-samd21-complex-arithmetic
Disable complex arithmetic on SAMD21 builds to make space
2020-11-30 13:47:56 -08:00
Dan Halbert
dbfabddf58 rename ESP TX and RX pins; remove support 2020-11-30 11:11:04 -05:00
Dan Halbert
9768951a2a Disable complex arithmetic on SAMD21 builds to make space 2020-11-29 15:34:38 -05:00
Dan Halbert
848eb28132 esp-uart-pins 2020-11-28 14:52:56 -05:00
Christian Walther
c7404a3ff8 Add movable allocation system.
This allows calls to `allocate_memory()` while the VM is running, it will then allocate from the GC heap (unless there is a suitable hole among the supervisor allocations), and when the VM exits and the GC heap is freed, the allocation will be moved to the bottom of the former GC heap and transformed into a proper supervisor allocation. Existing movable allocations will also be moved to defragment the supervisor heap and ensure that the next VM run gets as much memory as possible for the GC heap.

By itself this breaks terminalio because it violates the assumption that supervisor_display_move_memory() still has access to an undisturbed heap to copy the tilegrid from. It will work in many cases, but if you're unlucky you will get garbled terminal contents after exiting from the vm run that created the display. This will be fixed in the following commit, which is separate to simplify review.
2020-11-28 17:50:23 +01:00
Dan Halbert
28d9e9186e Disable complex arithmetic on SAMD21 builds to make space 2020-11-28 10:12:46 -05:00
Dan Halbert
104a089677 deep sleep working; deep sleep delay when connected 2020-11-26 22:06:37 -05:00
Dan Halbert
ef0830bfe2 merge from upstream + wip 2020-11-25 17:52:06 -05:00
Jeff Epler
e778fc1f87
Merge pull request #3741 from hathach/fix-cdc-connection-race
update tinyusb to fix cdc connection race
2020-11-24 19:11:41 -06:00
Scott Shawcroft
8364734ba3
Merge pull request #3749 from skerr92/add-cpsapling-spiflash
Add cpsapling spiflash
2020-11-24 15:22:21 -08:00
Jeff Epler
c451b22255 Disable 3-arg pow() function on m0 boards
`pow(a, b, c)` can compute `(a ** b) % c` efficiently (in time and memory).
This can be useful for extremely specific applications, like implementing
the RSA cryptosystem.  For typical uses of CircuitPython, this is not an
important feature.  A survey of the bundle and learn system didn't find
any uses.

Disable it on M0 builds so that we can fit in needed upgrades to the USB
stack.
2020-11-24 16:54:33 -06:00
Seth Kerr
686edcef3f fixing PID issues with CI Test (whoops) 2020-11-24 07:41:32 -05:00
Seth Kerr
e5cee98977 removing icy tree files/directory 2020-11-23 19:31:06 -05:00
Seth Kerr
2635132ce5 adding 'haxpress' kind of build for CP Sapling for use with SPI Flash 2020-11-23 19:21:12 -05:00
Scott Shawcroft
491e314799
Merge pull request #3718 from jepler/epd-rotation
EPaperDisplay: add rotation property
2020-11-23 15:04:26 -08:00
Dan Halbert
a0f1ec3c4a wip 2020-11-22 19:10:09 -05:00
Dan Halbert
75559f35cc wip: ResetReason to microcontroller.cpu 2020-11-21 23:29:52 -05:00
Seth Kerr
1c92b1bf61 forgot to run pre-commit local 2020-11-20 15:35:52 -05:00
Seth Kerr
c4f4cdd8c1 readding cp_sapling directory 2020-11-20 15:31:49 -05:00
Seth Kerr
29e91424d4 removing cp sapling temporarily to read 2020-11-20 15:29:35 -05:00
Seth Kerr
b69bbfa3d6 fixed issues with trailing whitespace check 2020-11-20 15:17:44 -05:00
Seth Kerr
0a06530d52 adding CP-Sapling 2020-11-20 15:06:57 -05:00
Jeff Epler
aaca3eccf1 samd: PDMIn: Reduce code unrolling on samd21 only
Instead of unrolling the code 16 times, unroll it 4 times and loop
over it 4 times.  This gives the same 16 iterations, but at an expense
of less flash space.
2020-11-19 16:19:37 -06:00
Jeff Epler
0556f9f851 Revert "samd21: Enable terse error reporting on resource constrained chip family"
This reverts commit 9a642fc049.
2020-11-19 15:12:56 -06:00
Jeff Epler
9a642fc049 samd21: Enable terse error reporting on resource constrained chip family
This reclaims over 1kB of flash space by simplifying certain exception
messages.  e.g., it will no longer display the requested/actual length
when a fixed list/tuple of N items is needed:

        if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
            mp_raise_ValueError(translate("tuple/list has wrong length"));
        } else {
            mp_raise_ValueError_varg(translate("requested length %d but object has length %d"),
                (int)len, (int)seq_len);

Other chip families including samd51 keep their current error reporting
capabilities.
2020-11-18 20:37:36 -06:00
Dan Halbert
ffff02c053 Merge remote-tracking branch 'adafruit/main' into sleep 2020-11-16 12:06:11 -05:00
Dan Halbert
bb77f1d130 wip: initial code changes, starting from @tannewt's sleepio branch 2020-11-16 11:56:20 -05:00
Scott Shawcroft
bda3267432
Save flash space
* No weak link for modules. It only impacts _os and _time and is
  already disabled for non-full builds.
* Turn off PA00 and PA01 because they are the crystal on the Metro
  M0 Express.
* Change ejected default to false to move it to BSS. It is set on
  USB connection anyway.
* Set sinc_filter to const. Doesn't help flash but keeps it out of
  RAM.
2020-11-13 18:57:52 -08:00
Scott Shawcroft
68eb809fbf
Update parallel bus signatures 2020-11-13 18:57:52 -08:00
Scott Shawcroft
c9952798fb
Merge pull request #3683 from BHDynamics/dynossat_edu
Rename pins on dynossat_edu_eps to make them the same as the Arduino core
2020-11-12 12:33:16 -08:00
Enrique Casado
aa68b17223 Freed some more space 2020-11-12 13:26:26 +01:00
Enrique Casado
9774736a50 Rename pins to make them the same as the Arduino core 2020-11-12 12:30:34 +01:00
gamblor21
23ed3ef971 Removing frozen libs 2020-11-11 11:36:04 -06:00
gamblor21
f61c4e62c1 Removing from smaller builds 2020-11-11 10:24:33 -06:00
Dan Halbert
36a8828fa3
Merge pull request #3632 from dhalbert/add-binascii
add binascii to most builds
2020-11-05 16:16:41 -05:00
Scott Shawcroft
e02539bdf5
Merge pull request #3633 from ITACAInnovation/patch-2
Update pins.c
2020-11-04 10:30:09 -08:00
ITACA Innovation S.R.L
ca935c0daf
Update pins.c
Changed builtin to standard
2020-11-03 21:22:19 +01:00
Scott Shawcroft
441c2c41fb
Merge pull request #3641 from adafruit/6.0.x
Merge 6.0.x bugfixes to main
2020-11-03 09:46:44 -08:00
Dan Halbert
1f7a3f0dfa Rev C Feather M4 CAN pin changes 2020-11-02 15:28:30 -05:00
Brian Dean
041c2a9f61 .../boards/bdmicro_vina_d51: PAD updates for better resource flexibility. 2020-11-02 08:35:25 -05:00
ITACA Innovation S.R.L
4e52757f26
Update pins.c
Added LED, BOOST_EN and VEXT_SELECT pins.
2020-11-01 22:22:55 +01:00
Dan Halbert
72b829dff0 add binascii to most builds 2020-11-01 14:52:03 -05:00
Jerry Needell
1762a36438 restore analogio to feather_m0_rfm9x/rfm69 builds 2020-11-01 05:46:13 -05:00
Dan Halbert
144eb131ae
Merge pull request #3627 from adafruit/6.0.x
Merge 6.0.x bugfixes to main
2020-10-31 12:28:20 -04:00
ITACA Innovation S.R.L
9a8484b853
Update mpconfigboard.h
Removed ignore PA30 PA31 in order to allow using them as pinout
2020-10-31 11:06:56 +01:00
ITACA Innovation S.R.L
a7616808e9
Updated pinout 2020-10-31 10:12:49 +01:00
Dan Halbert
59b9ca409c matrixportal ESP TX and RX pins were swapped 2020-10-28 20:33:10 -04:00
microDev
930cf14dce
Add check for invalid io, function to disable all alarms 2020-10-27 16:17:26 -07:00
microDev
e35938971a
Add description of alarm modules 2020-10-27 16:16:55 -07:00
Scott Shawcroft
54c0e98a37
Fix openbook build 2020-10-27 13:58:23 -07:00
Jeff Epler
fa4c4c2c10
Merge pull request #3587 from adafruit/6.0.x
Merge in two fixes from 6.0.x
2020-10-21 20:12:20 -05:00
Scott Shawcroft
1a677406bf
Merge pull request #3529 from jensechu/color-converter-transparency
displayio: Pass transparent_color to ColorConverter
2020-10-20 10:41:57 -07:00
Scott Shawcroft
8beb36c240
Use one lto partition
This leads to smaller code size at the expense of slower linking.

We can turn partitioning back on with GCC10 because it produces smaller code.
2020-10-20 09:24:03 -07:00
Christian Walther
1eab0692b5 Fix missing nproc on macOS.
396979a breaks building on macOS: `nproc` is a Linux thing, use a cross-platform alternative.
2020-10-20 16:39:32 +02:00
Scott Shawcroft
eb139c9bab
Correct pins to not reset.
They must have the PORT_ prefix otherwise they mask the wrong pins.

Fixes #3552
2020-10-19 17:41:16 -07:00
Jeff Epler
cc411f47eb samd: Update peripherals submodule
(https://github.com/adafruit/samd-peripherals/pull/37)
2020-10-17 20:08:32 -05:00
Jeff Epler
fb768dfc14 samd: AnalogOut: Better handle boards which IGNOREd analog pins 2020-10-17 20:08:32 -05:00
Jeff Epler
194d99f588 sparkfun_lumidrive: Can't IGNORE pins that are default bus pins
The SDA, SCL, and MISO pins were ignored.  This error was not diagnosed
before now.
2020-10-17 20:08:32 -05:00
Jeff Epler
eb0b023dee samd: extend IGNORE_PIN_foo to all sam e5x/e5x pins 2020-10-17 20:08:32 -05:00
Jeff Epler
4b9fc5de53 samd: update peripherals submodule
this is possible now that the undefined reference to pin_PA30 has been
resolved.
2020-10-17 20:08:32 -05:00
Jeff Epler
aa3c890ead samd: pin: Fix 'undefined reference to pin_PA30'
.. when PA30 is IGNOREd
2020-10-17 20:08:32 -05:00
Jeff Epler
396979a67e atmel-samd: parallelize lto linking
This decreases the link time, especially on desktop machines with many CPU
cores.  However, it does come at a slight cost in binary size, making the flash
section about 200 bytes bigger for circuitplayground_express.

Before, linking build-circuitplayground_express/firmware.elf takes
8.8s elapsed time, leaving 3128 bytes free in flash.

After, linking build-circuitplayground_express/firmware.elf takes 2.8s elapsed
time, leaving 2924 bytes free in flash. (-6 seconds, -204 bytes free)

If necessary, we can make this per-board or even per-translation to squeeze full
builds.
2020-10-17 20:08:32 -05:00
Scott Shawcroft
878f2322e7
Merge pull request #3564 from BHDynamics/dynossat_edu
Add DynOSSAT-EDU boards
2020-10-16 11:30:42 -07:00
Enrique Casado
6631c8d393 Add USB VID&PID 2020-10-16 13:52:46 +02:00
Dan Halbert
12ed3fc72f disable on winterbloom_sol and thunderpack 2020-10-15 18:48:28 -04:00
Dan Halbert
f51e75c1d2 cxd56 needed more precise include for __packed; needed SRC_C += on some ports 2020-10-15 15:24:24 -04:00
Dan Halbert
82b49afe43 enable CIRCUITPY_BLEIO_HCI on non-nRF boards where it will fit 2020-10-15 11:27:21 -04:00
Enrique Casado
97fae54659 Add DynOSSAT-EDU boards 2020-10-15 12:39:14 +02:00
Dan Halbert
f1e8f2b404
Merge pull request #3554 from gamblor21/move_ordereddict
Moved ORDEREDDICT define to central location
2020-10-14 22:39:04 -04:00
gamblor21
0a9bcc538b Removed ordered dict for all SAMD21 2020-10-14 20:15:21 -05:00
Brian Dean
852a91e1b7 boards/bdmicro_vina_d51/pins.c: Fix illegal QSTR name (hyphen). 2020-10-14 08:29:28 -04:00
Limor "Ladyada" Fried
e9c04bc1f0
Merge pull request #3550 from bd34n/bdmicro_vina_d51
Add new board to atmel-samd port: bdmicro_vina_d51
2020-10-13 23:15:25 -04:00
gamblor21
4270061db4 Moved ORDEREDDICT define to central location 2020-10-13 18:52:27 -05:00
Brian Dean
2b33968a1e Add new board to atmel-samd port: bdmicro_vina_d51 2020-10-13 16:46:25 -04:00
Scott Shawcroft
2bc40bcadf
Remove readreq when changing continuous 2020-10-13 10:15:34 -07:00
Scott Shawcroft
379e73af2e
Finer grained, per port tick locking
Fixes #3504 hopefully.
2020-10-12 18:43:21 -07:00
Scott Shawcroft
bb046f9983
Merge pull request #3540 from WarriorOfWire/async_syntax
__await__ magic method and async/await
2020-10-12 15:31:43 -07:00
Kenny
10badd93c3 leftover newlines 2020-10-11 22:52:27 -07:00
Kenny
94beeabc51 remove unnecessary board configuration and address feedback 2020-10-11 22:42:59 -07:00
Kenny
3c46e3a6aa
Turn off async for circuitplayground express
Firmware too large
2020-10-11 08:16:36 -07:00
warriorofwire
f5f1e29dc0 disable async/await on a several small ucontrollers 2020-10-10 15:43:12 -07:00
lady ada
70a94c8d2d fix for https://github.com/adafruit/circuitpython/issues/3534 2020-10-10 12:27:35 -04:00
Scott Shawcroft
3ccf644dd0
Fix autoreload on SAMD21
The issue was that a time.sleep() would set the RTC wake up
further into the future even if we wanted to tick every ms. Ticking
every ms is used to time the autoreload delay and without it,
autoreload doesn't work.

Fixes #3528
2020-10-09 12:53:00 -07:00
gamblor21
085d2a2274 Update submodule to merge commit 2020-10-07 14:09:26 -05:00
Jeff Epler
16ed875f4e canio: remove unused fields
these relate to properties that were removed as well
2020-10-06 20:14:50 -05:00
Scott Shawcroft
d62ac24493
Merge pull request #3469 from jepler/noreturn
Add some NORETURN attributes
2020-10-01 11:18:36 -07:00
Scott Shawcroft
5ac3c36d64
Merge pull request #3450 from mdroberts1243/New_quirk_for_SH1107
New quirk for sh1107
2020-09-30 12:03:10 -07:00
Jeff Epler
c129c8f296 Merge remote-tracking branch 'origin/main' into canbus-api-changes 2020-09-29 20:15:11 -05:00
Jeff Epler
2bb44f6c4d
Merge pull request #3486 from microDev1/fixTranslate
Update make translate script
2020-09-29 14:32:49 -05:00
Jeff Epler
611f81ac1a canio: actually drop the _error_count properties
thanks @tannewt
2020-09-29 14:25:53 -05:00
microDev
4c7d9e3aaf
Update make translate script 2020-09-29 11:14:30 +05:30
Jeff Epler
726dcdb60a Add some NORETURN attributes
I have a function where it should be impossible to reach the end, so I put in a safe-mode reset at the bottom:
```
int find_unused_slot(void) {
    // precondition: you already verified that a slot was available
    for (int i=0; i<NUM_SLOTS; i++) {
        if( slot_free(i)) {
            return i;
        }
    }
    safe_mode_reset(MICROPY_FATAL_ERROR);
}
```
However, the compiler still gave a diagnostic, because safe_mode_reset was not declared NORETURN.

So I started by teaching the compiler that reset_into_safe_mode never returned.  This leads at least one level deeper due to reset_cpu needing to be a NORETURN function.  Each port is a little different in this area.  I also marked reset_to_bootloader as NORETURN.
Additional notes:

 * stm32's reset_to_bootloader was not implemented, but now does a bare reset.  Most stm32s are not fitted with uf2 bootloaders anyway.
 * ditto cxd56
 * esp32s2 did not implement reset_cpu at all.  I used esp_restart().  (not tested)
 * litex did not implement reset_cpu at all.  I used reboot_ctrl_write.  But notably this is what reset_to_bootloader already did, so one or the other must be incorrect (not tested).  reboot_ctrl_write cannot be declared NORETURN, as it returns unless the special value 0xac is written), so a new unreachable forever-loop is added.
 * cxd56's reset is via a boardctl() call which can't generically be declared NORETURN, so a new unreacahble "for(;;)" forever-loop is added.
 * In several places, NVIC_SystemReset is redeclared with NORETURN applied.  This is accepted just fine by gcc.  I chose this as preferable to editing the multiple copies of CMSIS headers where it is normally declared.
 * the stub safe_mode reset simply aborts.  This is used in mpy-cross.
2020-09-28 18:55:56 -05:00
mdroberts1243
b1e1237887
Merge branch 'main' into New_quirk_for_SH1107 2020-09-28 19:40:47 -04:00
Jeff Epler
f4e36fc7f6 CAN: Use mp_obj_t insteaed of canio_message_obj_t, get rid of rtr field 2020-09-28 17:22:00 -05:00
Jeff Epler
3e97e9c4be canio: Listener: shuffle function declarations around 2020-09-28 17:22:00 -05:00
Jeff Epler
48bda589b8 Listerner: read -> receive, drop readinto
This prepares for creating a separate RemoteTransmissionRequest class
2020-09-28 17:22:00 -05:00