Skip to content

usb/cdc: Better ring buffer implementation #5209

Open
soypat wants to merge 5 commits intodevfrom
cdc-txbuf
Open

usb/cdc: Better ring buffer implementation #5209
soypat wants to merge 5 commits intodevfrom
cdc-txbuf

Conversation

@soypat
Copy link
Contributor

@soypat soypat commented Feb 19, 2026

Makes USBCDC ring buffers respect single-producer, single-consumer pattern in the spirit of the original algorithm, which almost got it right.

  • add cdc.ring512 implementation
  • Use atomic package instead of volatile to ensure ISR/concurrent access works reliably
  • Add better buffer ownership model using Peek/Discard to ensure the buffer is not overwritten by receive ISR during transmit
  • Add ring512 tests including fuzz tests with tens of millions of runs in single threaded conditions
  • Single implementation for both tx and rx now
  • Remove for loops within ring buffer writing/reading, use copy instead

Trying to fix #5188 I noticed that improving USBCDC implementation may not be enough, looks like the machine package for RP2 targets plays a very important role since it holds on to the buffer after machine.SendUSBInPacket(cdcEndpointIn, chunk) is called. This leaves callers in the dark of when the buffer space can be reused. The design of the machine USB package seems to be flawed in design if reliable data transmission is a priority, at least in the RP2 targets. Not yet sure how this can be solved.

@github-actions
Copy link

github-actions bot commented Feb 19, 2026

Size difference with the dev branch:

Binary size difference
 flash                          ram
 before   after   diff          before   after   diff
 388532  388384   -148  -0.04%   18824   19180    356   1.89% tinygo build -size short -o ./build/test.hex -target=matrixportal-m4 -stack-size 8kb ./examples/net/webstatic/
 338328  338244    -84  -0.02%   21908   22264    356   1.62% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webserver/
 120148  120076    -72  -0.06%   11916   12276    360   3.02% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2350 -stack-size 8kb ./examples/net/ntpclient/
  66780   66712    -68  -0.10%    9000    9356    356   3.96% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/flash/console/qspi
 103364  103332    -32  -0.03%   10052   10408    356   3.54% tinygo build -size short -o ./build/test.hex -target=metro-m4-airlift -stack-size 8kb ./examples/net/socket/
  73764   73760     -4  -0.01%   10736   11092    356   3.32% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/console/
   7356    7356      0   0.00%    2296    2296      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/at24cx/main.go
  71412   71412      0   0.00%    3640    3640      0   0.00% tinygo build -size short -o ./build/test.hex -target=pinetime     ./examples/bma42x/main.go
   7684    7684      0   0.00%    3336    3336      0   0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/sram/main.go
  21564   21564      0   0.00%    3532    3532      0   0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/time/main.go
   4400    4400      0   0.00%    2256    2256      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/main.go
   7068    7068      0   0.00%    2260    2260      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/gc9a01/main.go
   5528    5528      0   0.00%    2256    2256      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/customchar/main.go
   5568    5568      0   0.00%    2256    2256      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/text/main.go
  15980   15980      0   0.00%    2340    2340      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hub75/main.go
  26188   26188      0   0.00%    2304    2304      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/lsm303agr/main.go
  27396   27396      0   0.00%    3808    3808      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/microbitmatrix/main.go
  27276   27276      0   0.00%    5852    5852      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit-v2 ./examples/microbitmatrix/main.go
   6244    6244      0   0.00%    3268    3268      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setbuffer/main.go
   4628    4628      0   0.00%    2260    2260      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setpixel/main.go
   3113    3113      0   0.00%     560     560      0   0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/servo
  57568   57568      0   0.00%    3672    3672      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht3x/main.go
  57560   57560      0   0.00%    3680    3680      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht4x/main.go
  57568   57568      0   0.00%    3672    3672      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/shtc3/main.go
   5896    5896      0   0.00%    2260    2260      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1331/main.go
   6552    6552      0   0.00%    2260    2260      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7735/main.go
   6480    6480      0   0.00%    2260    2260      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7789/main.go
   6356    6356      0   0.00%    2300    2300      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13/main.go
   5944    5944      0   0.00%    2292    2292      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13x/main.go
   6248    6248      0   0.00%    2300    2300      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd4in2/main.go
   5100    5100      0   0.00%    8862    8862      0   0.00% '-xesppie' is not a recognized feature for this target (ignoring feature)
   1853    1853      0   0.00%     600     600      0   0.00% tinygo build -size short -o ./build/test.hex -target=arduino   ./examples/ws2812
   1328    1328      0   0.00%     182     182      0   0.00% tinygo build -size short -o ./build/test.hex -target=digispark ./examples/ws2812
   7244    7244      0   0.00%    3308    3308      0   0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-f103rb ./examples/shiftregister/main.go
   7020    7020      0   0.00%    2248    2248      0   0.00% '-xesppie' is not a recognized feature for this target (ignoring feature)
   9232    9232      0   0.00%    5232    5232      0   0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-l432kc ./examples/aht20/main.go
  13064   13064      0   0.00%    4920    4920      0   0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/sx126x/lora_rxtx/
 122056  122056      0   0.00%    8108    8108      0   0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/
  62124   62124      0   0.00%    3768    3768      0   0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ndir/main_ndir.go
 308548  308552      4   0.00%   15972   16332    360   2.25% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/websocket/dial/
 155740  155752     12   0.01%    8852    9208    356   4.02% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/mqttclient/natiu/
 347192  347208     16   0.00%   16804   17164    360   2.14% tinygo build -size short -o ./build/test.hex -target=pyportal -stack-size 8kb ./examples/net/http-get/
 263600  263644     44   0.02%   46752   47108    356   0.76% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/slideshow
 116544  116588     44   0.04%   13348   13704    356   2.67% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webclient/
  11952   12004     52   0.44%    4532    4900    368   8.12% tinygo build -size short -o ./build/test.uf2 -target=nicenano ./examples/sharpmem/main.go
  11312   11372     60   0.53%    6560    6928    368   5.61% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/apds9960/proximity/main.go
  14188   14248     60   0.42%    6560    6928    368   5.61% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/hts221/main.go
  13572   13632     60   0.44%    6560    6928    368   5.61% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/lps22hb/main.go
  24508   24568     60   0.24%   13708   14076    368   2.68% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840-sense ./examples/waveshare-epd/epd1in54/main.go
   9572    9640     68   0.71%    4520    4880    360   7.96% tinygo build -size short -o ./build/test.hex -target=circuitplay-bluefruit ./examples/tone
  88064   88140     76   0.09%    7236    7592    356   4.92% tinygo build -size short -o ./build/test.hex -target=challenger-rp2040 ./examples/net/ntpclient/
  12240   12320     80   0.65%    8352    8712    360   4.31% tinygo build -size short -o ./build/test.hex -target=xiao-ble ./examples/ssd1306/
 338388  338476     88   0.03%   21788   22148    360   1.65% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/mqttclient/paho/
  62740   62852    112   0.18%    5928    6296    368   6.21% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/is31fl3731/main.go
  24836   24972    136   0.55%    5384    5752    368   6.84% tinygo build -size short -o ./build/test.hex -target=metro-rp2350 ./examples/bno08x/i2c/main.go
 119764  119920    156   0.13%    8072    8428    356   4.41% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 -stack-size 8kb ./examples/net/tcpclient/
  62256   62424    168   0.27%    5964    6332    368   6.17% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/max6675/main.go
 174564  174740    176   0.10%   13888   14240    352   2.53% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2040 -stack-size 8kb ./examples/net/tlsclient/
  13060   13240    180   1.38%    6776    7136    360   5.31% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/amg88xx
   8632    8816    184   2.13%    6760    7128    368   5.44% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/fourwire/main.go
  12164   12348    184   1.51%    6956    7324    368   5.29% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/pyportal_touchpaint/main.go
  29248   29436    188   0.64%   38056   38424    368   0.97% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/pyportal_boing
  61804   61996    192   0.31%    8208    8576    368   4.48% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/i2csoft/adt7410/
  13756   13960    204   1.48%    5396    5764    368   6.82% tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/uc8151/main.go
 166148  166356    208   0.13%   10040   10400    360   3.59% tinygo build -size short -o ./build/test.hex -target=arduino-mkrwifi1010 -stack-size 8kb ./examples/net/tlsclient/
  27612   27860    248   0.90%    6808    7168    360   5.29% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/lsm303dlhc/main.go
  17536   17796    260   1.48%    6992    7348    356   5.09% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/as560x/main.go
  14776   15040    264   1.79%    5328    5696    368   6.91% tinygo build -size short -o ./build/test.hex -target=pico ./examples/tmc5160/main.go
  27908   28176    268   0.96%   18456   18824    368   1.99% tinygo build -size short -o ./build/test.hex -target=pico ./examples/waveshare-epd/epd2in66b/main.go
  43976   44248    272   0.62%    7192    7552    360   5.01% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/tmc2209/main.go
   9876   10156    280   2.84%    6896    7264    368   5.34% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/basic
   9908   10188    280   2.83%    6896    7256    360   5.22% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/scroll
   7704    7988    284   3.69%    6768    7128    360   5.32% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/shifter/main.go
   9876   10160    284   2.88%    6768    7128    360   5.32% tinygo build -size short -o ./build/test.elf -target=wioterminal ./examples/axp192/m5stack-core2-blinky/
  67364   67652    288   0.43%    6340    6700    360   5.68% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/i2c/main.go
  13724   14016    292   2.13%    5396    5764    368   6.82% tinygo build -size short -o ./build/test.hex -target=pico ./examples/pca9685/main.go
  13356   13648    292   2.19%    5380    5748    368   6.84% tinygo build -size short -o ./build/test.hex -target=qtpy-rp2040 ./examples/seesaw/rotary-encoder
  12276   12568    292   2.38%    5332    5700    368   6.90% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8591/
  13240   13536    296   2.24%    5324    5692    368   6.91% tinygo build -size short -o ./build/test.hex -target=thumby ./examples/ssd1306/
  11332   11628    296   2.61%    5340    5708    368   6.89% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu6886/main.go
  68844   69140    296   0.43%    6872    7240    368   5.36% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ndir/main_ndir.go
  10784   11080    296   2.74%    5332    5700    368   6.90% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu9150/main.go
  24480   24776    296   1.21%    5412    5780    368   6.80% tinygo build -size short -o ./build/test.hex -target=pico ./examples/si5351/main.go
  13128   13428    300   2.29%    5324    5692    368   6.91% tinygo build -size short -o ./build/test.hex -target=xiao-rp2040 ./examples/ssd1306/
  12976   13276    300   2.31%    5368    5736    368   6.86% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/sh1106/macropad_spi
  69996   70312    316   0.45%    6960    7316    356   5.11% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/flash/console/spi
   8664    8984    320   3.69%    4752    5120    368   7.74% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017/main.go
  42636   42964    328   0.77%    4956    5316    360   7.26% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/basic/main.go
  15360   15696    336   2.19%    5444    5812    368   6.76% tinygo build -size short -o ./build/test.hex -target=pico     ./examples/sgp30
  13680   14016    336   2.46%    5348    5716    368   6.88% tinygo build -size short -o ./build/test.hex -target=pico ./examples/qmi8658c/main.go
  14340   14676    336   2.34%    5388    5756    368   6.83% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ens160/main.go
  75916   76256    340   0.45%    7432    7788    356   4.79% tinygo build -size short -o ./build/test.hex -target=p1am-100 ./examples/p1am/main.go
  12280   12620    340   2.77%    5384    5752    368   6.84% tinygo build -size short -o ./build/test.hex -target=pico ./examples/touch/capacitive
  10456   10796    340   3.25%    5320    5688    368   6.92% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/xpt2046/main.go
  33124   33468    344   1.04%    6836    7204    368   5.38% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/ssd1289/main.go
   9808   10152    344   3.51%    5804    6172    368   6.34% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/encoders/quadrature-interrupt
  68380   68724    344   0.50%    6840    7208    368   5.38% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mcp9808/main.go
  29400   29744    344   1.17%    6788    7148    360   5.30% tinygo build -size short -o ./build/test.hex -target=pico ./examples/w5500/main.go
  18416   18764    348   1.89%    6216    6584    368   5.92% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/adafruit4650
   9068    9416    348   3.84%    4760    5128    368   7.73% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017-multiple/main.go
  12064   12412    348   2.88%    5372    5740    368   6.85% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/seesaw/soil-sensor
  37328   37680    352   0.94%    6040    6408    368   6.09% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8523/
  28732   29088    356   1.24%    4956    5316    360   7.26% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/alarms/main.go
  11916   12284    368   3.09%    5400    5756    356   6.59% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd4x/main.go
  11800   12176    376   3.19%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina219/main.go
  67812   68212    400   0.59%    6484    6844    360   5.55% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/uart/main.go
  12628   13028    400   3.17%    6296    6656    360   5.72% tinygo build -size short -o ./build/test.hex -target=pico ./examples/irremote/main.go
  10068   10472    404   4.01%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis3dh/main.go
  61328   61744    416   0.68%    6160    6528    368   5.97% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adt7410/main.go
  11396   11816    420   3.69%    4792    5152    360   7.51% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bmp388/main.go
  63876   64300    424   0.66%    6200    6568    368   5.94% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp280/main.go
  70324   70748    424   0.60%    6320    6688    368   5.82% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/time/
  65044   65468    424   0.65%    6232    6600    368   5.91% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ndir/main_ndir.go
  65196   65628    432   0.66%    6176    6544    368   5.96% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmi160/main.go
  71380   71812    432   0.61%    6176    6544    368   5.96% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp2515/main.go
  31636   32068    432   1.37%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bme280/main.go
  76492   76924    432   0.56%    6312    6680    368   5.83% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/dht/main.go
  70880   71312    432   0.61%    6320    6688    368   5.82% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/alarm/
  70712   71144    432   0.61%    6320    6688    368   5.82% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/timer/
   9008    9448    440   4.88%    4744    5104    360   7.59% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ds18b20/main.go
   8276    8764    488   5.90%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adxl345/main.go
   8436    8924    488   5.78%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/main.go
   7520    8008    488   6.49%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bh1750/main.go
   6880    7368    488   7.09%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/blinkm/main.go
  27176   27664    488   1.80%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp180/main.go
   7932    8420    488   6.15%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/hcsr04/main.go
  11824   12312    488   4.13%    4768    5128    360   7.55% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/lsm6ds3/main.go
   6976    7464    488   7.00%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mma8653/main.go
   6880    7368    488   7.09%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mpu6050/main.go
   6308    6796    488   7.74%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/simple/main.go
   8228    8716    488   5.93%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/speed/main.go
   6284    6772    488   7.77%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/simple/main.go
   8632    9120    488   5.65%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/speed/main.go
  10760   11248    488   4.54%    4744    5104    360   7.59% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/max72xx/main.go
   6688    7176    488   7.30%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/clkout/
   7276    7764    488   6.71%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ttp229/main.go
   9528   10020    492   5.16%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mag3110/main.go
  15280   15772    492   3.22%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl53l1x/main.go
  13836   14328    492   3.56%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl6180x/main.go
  11248   11740    492   4.37%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/buzzer/main.go
  12788   13280    492   3.85%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis2mdl/main.go
  16288   16784    496   3.05%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/thermistor/main.go
  11772   12268    496   4.21%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/veml6070/main.go
   6400    6908    508   7.94%    4760    5120    360   7.56% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/ws2812
   9856   10376    520   5.28%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/hd44780i2c/main.go
  10704   11224    520   4.86%    4856    5216    360   7.41% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/scroll
   8920    9440    520   5.83%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp3008/main.go
   9616   10136    520   5.41%    4720    5080    360   7.63% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/tm1637/main.go
  10620   11144    524   4.93%    4856    5224    368   7.58% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/basic
   8208    8732    524   6.38%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina260/main.go
   7460    7984    524   7.02%    4728    5088    360   7.61% tinygo build -size short -o ./build/test.uf2 -target=circuitplay-express ./examples/makeybutton/main.go
  15860   16392    532   3.35%    4704    5080    376   7.99% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/microphone/main.go
   9252    9828    576   6.23%    4740    5108    368   7.76% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/itsybitsy-m0/main.go
6291438 6329262  37824   0.02%  982188 1025740  43552   0.05%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments