Commit graph

305 commits

Author SHA1 Message Date
Dan Halbert
7a99affc63 switch to gcc 14.2Rel1 2025-05-29 18:12:52 -04:00
Scott Shawcroft
c340596580
Add selective collect to memory allocations
By selectively collecting an allocation, we can skip scanning many
allocations for pointers because we know up front they won't have
them. This helps a ton when large buffers are being used and memory is
slow (PSRAM). In one Fruit Jam example GC times drop from 80+ms to
~25ms. The example uses a number of bitmaps that are now no longer
scanned.
2025-04-22 14:07:00 -07:00
Scott Shawcroft
50382b22c7
No qstr hash on all SAMD21 2025-04-22 11:03:48 -07:00
Scott Shawcroft
8571634abc
Fix overridability for double typecode 2025-04-21 09:56:17 -07:00
Scott Shawcroft
eca93043ff
Shrink non-FULL builds (SAMDs mostly)
* Use 0 bytes for QSTR hash. Fixes #10151
* Update libgcc used on SAMD21 to 14.2. Reduces test build by over 100 bytes.
* Turn off 'd' typecode support on non-full builds.
2025-04-17 14:26:04 -07:00
Scott Shawcroft
8f7496c069
Merge pull request #10231 from eightycc/issue-9710
Implement BOOTSEL button entry to safe mode for RP2.
2025-04-15 09:51:40 -07:00
eightycc
7012deb3e7 Implement use_global_block_protection_lock for write-enabling flash.
Fix mis-placed conditional in circuitpy_mpconfig.h.
2025-04-14 07:47:59 -07:00
eightycc
4d81b53024 Update CIRCUITPY_BOOT_BUTTON_NO_GPIO to 0/1 for false/true. Add compile time check forbidding CIRCUITPY_BOOT_BUTTON and CIRCUITPY_BOOT_BUTTON_NO_GPIO. 2025-04-11 20:42:00 -07:00
Dan Halbert
641ab0dc06 increase default PYSTACK size from 1536 to 2048 2025-04-08 12:44:48 -04:00
Dan Halbert
1876c7179f Convert completely to new displayio bindings; remove warnings 2025-03-28 13:12:58 -04:00
Dan Halbert
df3327179d CIRCUITPY_FULL_BUILD now controls a few more features 2025-03-19 21:49:33 -04:00
eightycc
aec1071786 Rename to CIRCUITPY_9_10_WARNINGS and turn on warnings for CP9. 2025-03-18 15:33:43 -07:00
eightycc
7c827c7e8e Revert "Remove CIRCUITPY_8_9_WARNINGS and its usage."
This reverts commit 4bcc424f4d.
2025-03-18 15:22:03 -07:00
eightycc
4bcc424f4d Remove CIRCUITPY_8_9_WARNINGS and its usage. 2025-03-18 09:13:46 -07:00
Scott Shawcroft
5616fc2a3c
Add support for saves partition
Suggested in #10045
2025-03-06 16:48:59 -08:00
Scott Shawcroft
7f0cc9e7b4
Add Zephyr port
This port is meant to grow to encompass all existing boards. For
now, it is a port while we transition over.

It is named `zephyr-cp` to differentiate it from the MicroPython
`zephyr` port. They are separate implementations.
2025-02-04 11:24:13 -08:00
eightycc
038c92a2f5 Serial UART console bug fixes and enhancements. 2025-01-15 18:02:28 -08:00
0d91f1e085 Add global GCC version check
We can set some of them lower than 13 if necessary on a per-port basis.
At least esp32 and arm ports all use 13 from what I could see.
2024-11-01 11:30:24 -05:00
Dan Halbert
ebdf3391e7 turn off ulab.numpy.random, which is large 2024-09-13 16:06:22 -04:00
Dan Halbert
02e11a9413 fix compilation issues; remove more uctypes mentions 2024-09-10 16:04:47 -04:00
Dan Halbert
bc6f065447 working on compilation errors 2024-09-06 23:10:41 -04:00
Dan Halbert
950b5d09d2 guard2once -s ... 2024-05-19 20:40:44 -04:00
Dan Halbert
747b7619ea update headers of most CircuitPython-only files 2024-05-17 14:56:28 -04:00
Dan Halbert
e10b179114 Merge remote-tracking branch 'adafruit/9.0.x' into 9.0.x-to-main-2024-03-27 2024-03-27 11:49:32 -04:00
Dan Halbert
c035ade1fd
Merge pull request #9065 from SAK917/expand-objdeque-implementation
Expand objdeque implementation
2024-03-26 19:28:07 -04:00
Dan Halbert
999a4acd9f py/objmodule.c: disable new displayio name warnings 2024-03-26 16:06:27 -04:00
SAK917
c4df571589 Enable new deque functionality in CP configuration settings 2024-03-20 12:33:17 -07:00
Dan Halbert
dc69c29dac rename ports/nrf to ports/nordic 2024-03-19 17:36:57 -04:00
Dan Halbert
3871899860 wip 2024-02-17 22:42:41 -05:00
Dan Halbert
a71f19ba02 circuitpy_mpconfig.h: terse errors on non-full-builds 2024-01-26 13:09:20 -05:00
Dan Halbert
035569d7fe recent MicroPython broke out binascii.crc32() 2023-12-29 11:32:04 -05:00
5d1b49516c
Enable io.IOBase so we can construct a RequestsStreamWrapper in Python code 2023-12-24 10:49:59 -06:00
Bill Sideris
186fa35138
Enable compile on all ports. 2023-12-04 22:00:32 +02:00
Dan Halbert
567c273e46 ESP32-S3 BLE: set up Characteristic properly during discovery 2023-11-21 20:53:05 -05:00
Scott Shawcroft
8ff0682937
Merge pull request #8605 from tannewt/fix_esp_heap_alloc
Fix split heap on ESP
2023-11-14 14:52:28 -08:00
Scott Shawcroft
1f2355742b
Fix split heap on ESP
It was setting the DMA capability requirement which excludes PSRAM.

Fixes #8597. Fixes #8573.
2023-11-14 12:00:59 -08:00
fb840159fb
Remove some stuff about reserved psram & supervisor allocations
this is obsoleted by the new split heap code 🎉
2023-11-13 12:55:26 -06:00
Scott Shawcroft
8137e2d6d2
Switch all ports to auto-growing split heap
This simplifies allocating outside of the VM because the VM doesn't
take up all remaining memory by default.

On ESP we delegate to the IDF for allocations. For all other ports,
we use TLSF to manage an outer "port" heap. The IDF uses TLSF
internally and we use their fork for the other ports.

This also removes the dynamic C stack sizing. It wasn't often used
and is not possible with a fixed outer heap.

Fixes #8512. Fixes #7334.
2023-11-01 15:24:16 -07:00
Scott Shawcroft
d8148559c2
Enable native subpackage support 2023-10-24 13:49:18 -07:00
Dan Halbert
4b42a6f4a0 restore old uzlib; remove remaining U and u prefixes 2023-10-19 21:29:57 -04:00
Scott Shawcroft
18c03a74dd
Fix a few tests
* Re-enable a couple FATFS configurations we added.
* Remove MICROPY_PY_IO_FILEIO.
* Remove uasyncio from standard unix build.
* Re-add our unicode printing improvements.
2023-10-05 10:59:08 -07:00
Dan Halbert
1c388ab315 finish converting to MP_REGISTER_ROOT_POINTER() 2023-09-29 10:49:34 -04:00
Dan Halbert
76ff01452b Trinket M0 comes up; still very much wip 2023-09-28 16:22:10 -04:00
Dan Halbert
2c0fa0f7dc initial merge from v1.20.0; just satisifying conflicts 2023-09-19 11:10:12 -04:00
Dan Halbert
2171e67c1b merge latest adafruit/main 2023-08-13 19:43:54 -04:00
Dan Halbert
0d2c3c3f08 wip: continuing compilation fixes; mp_obj_alloc everywhere 2023-08-07 20:45:57 -04:00
Dan Halbert
465d1c673e wip 2023-08-03 23:29:00 -04:00
Scott Shawcroft
e45a61f57e
Align fatfs window buffer for tinyusb
Also, update tinyusb.
2023-07-27 09:15:58 -07:00
Scott Shawcroft
dd71ae10b9
Slim down stack frames
This reduces the stack frame size of mp_builtin___import__ by
limiting the support path length of files from 256 to 96. This
function can be called recursively for nested imports so it adds up.

Also reduce mp_execute_bytecode (vm.c) from 206 a bc call to 124.
This too is recursive and adds up. It is reduced by preventing
some inlining. It may decrease performance slightly when importing
and unpacking.

Adds two new scripts for debugging. One is used from gdb to print
frame sizes in a backtrace. The other prints what pcs use a
particular stack offset. This helps find infrequently used stack
space.

Fixes #8053.
2023-06-06 16:20:47 -07:00
Scott Shawcroft
097af804cd
Fix ticks
In #7497 port_background_task was renamed to port_background_tick
but the actual call site wasn't changed. This meant that it was
no longer called!

Rename more functions from task to tick to make it clearer which is
which.
2023-04-07 09:49:51 -07:00