circuitpython/ports/atmel-samd
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
..
asf4@84f56af132 update submodules to merge commits 2020-09-14 17:22:30 -05:00
asf4_conf Add CAN to SAM E51 clock config 2020-09-21 16:44:26 -05:00
bindings/samd Fix several type hints 2020-07-27 18:05:13 +09:00
boards fixing PID issues with CI Test (whoops) 2020-11-24 07:41:32 -05:00
common-hal samd: PDMIn: Reduce code unrolling on samd21 only 2020-11-19 16:19:37 -06:00
freetouch@b6859a349e Use merged in FreeTouch 2018-05-23 11:57:35 -07:00
modules Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
peripherals@a7e39c4d01 samd: Update peripherals submodule 2020-10-17 20:08:32 -05:00
sd_mmc samd: sdio: Add needed files from atmel start 2020-06-26 11:50:41 -05:00
supervisor Add movable allocation system. 2020-11-28 17:50:23 +01:00
tools _canio: Minimal implementation for SAM E5x MCUs 2020-09-21 16:44:26 -05:00
.gitattributes Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
.gitignore Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
audio_dma.c samd: audio: Move to background callback 2020-07-15 09:26:47 -05:00
audio_dma.h samd: audio: Move to background callback 2020-07-15 09:26:47 -05:00
background.c supervisor: factor supervisor_background_tasks from sundry ports 2020-07-15 11:49:44 -05:00
background.h supervisor: factor supervisor_background_tasks from sundry ports 2020-07-15 11:49:44 -05:00
eic_handler.c refactor countio based on feedback 2020-05-05 15:23:38 +10:00
eic_handler.h refactor countio based on feedback 2020-05-05 15:23:38 +10:00
fatfs_port.c Add license to some obvious files. 2020-07-06 19:16:25 +01:00
ld_defines.c wip 2019-12-05 22:45:53 -05:00
Makefile Merge pull request #3529 from jensechu/color-converter-transparency 2020-10-20 10:41:57 -07:00
mpconfigport.h Revert "samd21: Enable terse error reporting on resource constrained chip family" 2020-11-19 15:12:56 -06:00
mpconfigport.mk Disable 3-arg pow() function on m0 boards 2020-11-24 16:54:33 -06:00
mphalport.c atmel-samd: Add support for SAM E54 family MCUs 2020-06-23 10:41:48 -05:00
mphalport.h Add externs. GCC10 complains about duplicate defines 2020-07-22 16:26:46 -07:00
qstrdefsport.h Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge 2017-10-24 22:31:16 -07:00
README.rst docs: Improve 5.0.x <-> main branch doc linkrot 2020-06-14 11:12:35 -05:00
reset.c Add some NORETURN attributes 2020-09-28 18:55:56 -05:00
reset.h Add some NORETURN attributes 2020-09-28 18:55:56 -05:00
samd_peripherals_config.h Move pin struct to the peripherals library. 2018-08-02 13:59:05 -07:00
timer_handler.c _pew: move to common-hal 2020-06-22 10:45:27 -05:00
timer_handler.h Merge remote-tracking branch 'adafruit/master' into lower_power 2020-04-20 18:25:13 -07:00

SAMD21 and SAMD51
==================

This port supports many development boards that utilize SAMD21 and SAMD51 chips. See
https://circuitpython.org/downloads for all supported boards.


Building
--------

For build instructions see this guide: https://learn.adafruit.com/building-circuitpython/


Debugging
---------

For debugging instructions see this guide: https://learn.adafruit.com/debugging-the-samd21-with-gdb


Port Specific modules
---------------------

.. toctree::
    ../../shared-bindings/samd/index