Deep Dive w/Scott: 9.x alpha and split heaps!
Join Scott as he talks about the CircuitPython 9.0.0 Alpha and picks up on the split heap work.
Thanks to dcd for timecodes!
0:00 Getting Started
3:27 Introduction
4:57 Milestone this week CP 9 Alpha 2 release (with latest release of Micro Python 1.21?)
9:40 New warnings demo
10:20 SiLabs port of CP
11:14 git fetch all instead of fetch
11:30 S3 bug in IDF 5.1 - BLE ? ( esp-idf issue 11690 )
12:25 CP Bundle Release
12:55 Automatic Heap probe/growth? in CP on IDF
16:18 github espressif/esp-idf/issues/11690
17:13 adafruit / esp-idf - CP uses fixed idf
18:11 switch to split heap branch ( except unix port )
19:18 pre-commit failed
20:20 overflowed build by 440 bytes - need to find space
20:58 TLS manages the outer heap
21:37 Try out the new build - ( build with split heap first)
27:58 see what CP does now for allocations allocator.h
30:15 downloading new code, but it doesn't boot ( flashing and restarting)
31:21 time to start 'printf' debugging
33:10 found board with external PSRAM (n32r8)
34:42 dual tio setup
36:30 computer not finding the USB uart / is udev hung?
38:10 kernel saw the device
38:40 journalctl - look at udev
39:45 port malloc / free vs protomater buffer allocaton / DMA assumptions
41:11 try with nrf52840 feather (future scott can fix memory optimization)
42:16 Jlink GDB server
43:00 hard fault - into untested code / import / parse / add more heap
44:35 crash in port.c line 75
45:06 gdb explore local varables / max_size_walker port.c / tlsf.c
51:40 circuit pi drive, and repl
52:30 test from repl
55:24 re-run after adding log messages
56:20 future desire - share compilation across boards
56:43 port_free(0x0) - we should fix that...
57:46 debugger / set breakpoint port_malloc / use backtrace to see callers
1:00:45 explain why two independent stacks
1:04:00 look at gc.c and allocation strategy
1:05:30 defrag memory is sort of 'impossible'
1:12:49 add a brkpt if free(0)
1:13:27 reset_into_safe_mode - great place when debugging
1:18:09 isolated boards explained
1:20:14 Pants 2 ( pantsbuild.org ) ( rust + python )
1:25:30 "everybody that uses cmake does not like cmake"
1:27:05 re-debug after fixing the free(0)
1:30:07 Pants notion of environment
1:32:15 looks like it's working ok
1:33:13 try the esp feather again
1:33:49 sublime merge - discard lines ( removed the "brkpt" )
1:36:18 Q strings
1:38:45 new esp build still is restarting
1:40:05 return to the build progress
1:42:20 easy fix the capitalization
1:42:57 remove the restriction of the number of displays
1:45:00 Monster Mask has two displays
1:46:10 release_displays ? kept around to display errors?
1:48:42 probaly better to keep the first display bus
1:55:40 Writing CP drivers - write the example code first
1:57:30 Zephyr modules and build systems
2:03:30 kconfig, dependency analysis, and side effects
2:04:30 wrapping up - welcome to discord server
2:07:30 see you later
Visit the Adafruit shop online - http://www.adafruit.com
-----------------------------------------
LIVE CHAT IS HERE! http://adafru.it/discord
Subscribe to Adafruit on YouTube: http://adafru.it/subscribe
New tutorials on the Adafruit Learning System: http://learn.adafruit.com/
-----------------------------------------