esp32: add interrupt support (vector table, timer alarm, GPIO SetInterrupt)#5510
Open
deadprogram wants to merge 9 commits into
Open
esp32: add interrupt support (vector table, timer alarm, GPIO SetInterrupt)#5510deadprogram wants to merge 9 commits into
deadprogram wants to merge 9 commits into
Conversation
|
Size difference with the dev branch: Binary size differenceflash ram before after diff before after diff 19664 19664 0 0.00% 7052 7052 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/adafruit4650 63188 63188 0 0.00% 6780 6780 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adt7410/main.go 9992 9992 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/adxl345/main.go 14604 14604 0 0.00% 7388 7388 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/amg88xx 10152 10152 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/main.go 12572 12572 0 0.00% 7172 7172 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/apds9960/proximity/main.go 11104 11104 0 0.00% 5360 5360 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/apa102/itsybitsy-m0/main.go 7556 7556 0 0.00% 2304 2304 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/at24cx/main.go 9240 9240 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bh1750/main.go 8628 8628 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/blinkm/main.go 71608 71608 0 0.00% 3648 3648 0 0.00% tinygo build -size short -o ./build/test.hex -target=pinetime ./examples/bma42x/main.go 67080 67080 0 0.00% 6796 6796 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmi160/main.go 28912 28912 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp180/main.go 65688 65688 0 0.00% 6820 6820 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/bmp280/main.go 13048 13048 0 0.00% 5404 5404 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bmp388/main.go 24000 24000 0 0.00% 6220 6220 0 0.00% tinygo build -size short -o ./build/test.hex -target=metro-rp2350 ./examples/bno08x/i2c/main.go 7988 7988 0 0.00% 3344 3344 0 0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/sram/main.go 22108 22108 0 0.00% 3548 3548 0 0.00% tinygo build -size short -o ./build/test.hex -target=bluepill ./examples/ds1307/time/main.go 30528 30528 0 0.00% 5576 5576 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/alarms/main.go 44464 44464 0 0.00% 5576 5576 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/ds3231/basic/main.go 4560 4560 0 0.00% 2264 2264 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/easystepper/main.go 71852 71852 0 0.00% 7580 7580 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/flash/console/spi 67964 67964 0 0.00% 9620 9620 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/flash/console/qspi 7096 7096 0 0.00% 2268 2268 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/gc9a01/main.go 69264 69264 0 0.00% 6964 6964 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/i2c/main.go 69952 69952 0 0.00% 7108 7108 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/gps/uart/main.go 9652 9652 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/hcsr04/main.go 5668 5668 0 0.00% 2264 2264 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/customchar/main.go 5708 5708 0 0.00% 2264 2264 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hd44780/text/main.go 11568 11568 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/hd44780i2c/main.go 15440 15440 0 0.00% 7172 7172 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/hts221/main.go 16148 16148 0 0.00% 2348 2348 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/hub75/main.go 11200 11200 0 0.00% 7516 7516 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/basic 12268 12268 0 0.00% 5476 5476 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/basic 30504 30504 0 0.00% 38676 38676 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/pyportal_boing 11236 11236 0 0.00% 7508 7508 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/scroll 12360 12360 0 0.00% 5468 5468 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/ili9341/scroll 264184 264184 0 0.00% 47348 47348 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/ili9341/slideshow 11704 11704 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis3dh/main.go 14848 14848 0 0.00% 7172 7172 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-33-ble ./examples/lps22hb/main.go 26688 26688 0 0.00% 2312 2312 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/lsm303agr/main.go 29336 29336 0 0.00% 7420 7420 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/lsm303dlhc/main.go 13560 13560 0 0.00% 5380 5380 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/lsm6ds3/main.go 11240 11240 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mag3110/main.go 10192 10192 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017/main.go 10636 10636 0 0.00% 5380 5380 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp23017-multiple/main.go 10648 10648 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp3008/main.go 73264 73264 0 0.00% 6836 6836 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mcp2515/main.go 28288 28288 0 0.00% 4048 4048 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/microbitmatrix/main.go 28312 28312 0 0.00% 6092 6092 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit-v2 ./examples/microbitmatrix/main.go 8692 8692 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mma8653/main.go 8596 8596 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/mpu6050/main.go 78040 78040 0 0.00% 8048 8048 0 0.00% tinygo build -size short -o ./build/test.hex -target=p1am-100 ./examples/p1am/main.go 15084 15084 0 0.00% 6232 6232 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/pca9685/main.go 6400 6400 0 0.00% 3276 3276 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setbuffer/main.go 4784 4784 0 0.00% 2268 2268 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/pcd8544/setpixel/main.go 13140 13140 0 0.00% 6208 6208 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/seesaw/soil-sensor 14484 14484 0 0.00% 6216 6216 0 0.00% tinygo build -size short -o ./build/test.hex -target=qtpy-rp2040 ./examples/seesaw/rotary-encoder 2889 2889 0 0.00% 560 560 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/servo 16616 16616 0 0.00% 6280 6280 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/sgp30 9076 9076 0 0.00% 7380 7380 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/shifter/main.go 57864 57864 0 0.00% 3680 3680 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht3x/main.go 57864 57864 0 0.00% 3688 3688 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/sht4x/main.go 57872 57872 0 0.00% 3680 3680 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/shtc3/main.go 13532 13532 0 0.00% 8964 8964 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao-ble ./examples/ssd1306/ 14404 14404 0 0.00% 6160 6160 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao-rp2040 ./examples/ssd1306/ 14504 14504 0 0.00% 6160 6160 0 0.00% tinygo build -size short -o ./build/test.hex -target=thumby ./examples/ssd1306/ 6052 6052 0 0.00% 2268 2268 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ssd1331/main.go 6900 6900 0 0.00% 2268 2268 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7735/main.go 6628 6628 0 0.00% 2268 2268 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/st7789/main.go 18012 18012 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/thermistor/main.go 10832 10832 0 0.00% 5132 5132 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-bluefruit ./examples/tone 11224 11224 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/tm1637/main.go 13688 13688 0 0.00% 6220 6220 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/touch/capacitive 9912 9912 0 0.00% 7380 7380 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/fourwire/main.go 13380 13380 0 0.00% 7576 7576 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal ./examples/touch/resistive/pyportal_touchpaint/main.go 16996 16996 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl53l1x/main.go 15568 15568 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=itsybitsy-m0 ./examples/vl6180x/main.go 25832 25832 0 0.00% 14328 14328 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840-sense ./examples/waveshare-epd/epd1in54/main.go 6508 6508 0 0.00% 2308 2308 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13/main.go 6100 6100 0 0.00% 2300 2300 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd2in13x/main.go 6400 6400 0 0.00% 2308 2308 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/waveshare-epd/epd4in2/main.go 29028 29028 0 0.00% 19288 19288 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/waveshare-epd/epd2in66b/main.go 8308 8308 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/ws2812 5678 5678 0 0.00% 8432 8432 0 0.00% tinygo build -size short -o ./build/test.bin -target=m5stamp-c3 ./examples/ws2812 64064 64064 0 0.00% 6548 6548 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/is31fl3731/main.go 1773 1773 0 0.00% 600 600 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino ./examples/ws2812 1264 1264 0 0.00% 182 182 0 0.00% tinygo build -size short -o ./build/test.hex -target=digispark ./examples/ws2812 7278 7278 0 0.00% 8712 8712 0 0.00% tinygo build -size short -o ./build/test.bin -target=xiao-esp32c3 ./examples/ws2812 33136 33136 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/bme280/main.go 17588 17588 0 0.00% 5324 5324 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/microphone/main.go 12988 12988 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/buzzer/main.go 13488 13488 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=trinket-m0 ./examples/veml6070/main.go 8060 8060 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/simple/main.go 9972 9972 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l293x/speed/main.go 8020 8020 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/simple/main.go 10396 10396 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/l9110x/speed/main.go 7532 7532 0 0.00% 3316 3316 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-f103rb ./examples/shiftregister/main.go 7088 7088 0 0.00% 2264 2264 0 0.00% tinygo build -size short -o ./build/test.hex -target=hifive1b ./examples/ssd1351/main.go 14856 14856 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=circuitplay-express ./examples/lis2mdl/main.go 12484 12484 0 0.00% 5356 5356 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/max72xx/main.go 78552 78552 0 0.00% 6932 6932 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/dht/main.go 38916 38916 0 0.00% 6872 6872 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8523/ 72964 72964 0 0.00% 6940 6940 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/alarm/ 8404 8404 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/clkout/ 72460 72460 0 0.00% 6936 6936 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/time/ 72860 72860 0 0.00% 6940 6940 0 0.00% tinygo build -size short -o ./build/test.hex -target=xiao ./examples/pcf8563/timer/ 14780 14780 0 0.00% 6184 6184 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/qmi8658c/main.go 13888 13888 0 0.00% 6168 6168 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-rp2040 ./examples/pcf8591/ 9928 9928 0 0.00% 5340 5340 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina260/main.go 13436 13436 0 0.00% 5372 5372 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m0 ./examples/ina219/main.go 9612 9612 0 0.00% 5240 5240 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-l432kc ./examples/aht20/main.go 75028 75028 0 0.00% 11368 11368 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/sdcard/console/ 63220 63220 0 0.00% 8828 8828 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-m4 ./examples/i2csoft/adt7410/ 11244 11244 0 0.00% 7380 7380 0 0.00% tinygo build -size short -o ./build/test.elf -target=wioterminal ./examples/axp192/m5stack-core2-blinky/ 11808 11808 0 0.00% 6156 6156 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/xpt2046/main.go 13464 13464 0 0.00% 4924 4924 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/sx126x/lora_rxtx/ 44228 44228 0 0.00% 9452 9452 0 0.00% tinygo build -size short -o ./build/test.hex -target=pybadge ./examples/sx127x/lora_rxtx/ 35008 35008 0 0.00% 7896 7896 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/ssd1289/main.go 14176 14176 0 0.00% 7148 7148 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/irremote/main.go 14732 14732 0 0.00% 6232 6232 0 0.00% tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/uc8151/main.go 15184 15184 0 0.00% 6676 6676 0 0.00% tinygo build -size short -o ./build/test.hex -target=badger2040 ./examples/waveshare-epd/epd2in9v2/main.go 13052 13052 0 0.00% 6228 6228 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/scd4x/main.go 9180 9180 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=circuitplay-express ./examples/makeybutton/main.go 10652 10652 0 0.00% 5356 5356 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ds18b20/main.go 123972 123972 0 0.00% 8344 8344 0 0.00% tinygo build -size short -o ./build/test.hex -target=nucleo-wl55jc ./examples/lora/lorawan/atcmd/ 19132 19132 0 0.00% 7808 7808 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/as560x/main.go 12924 12924 0 0.00% 6176 6176 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu6886/main.go 8996 8996 0 0.00% 5332 5332 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ttp229/main.go 70260 70260 0 0.00% 7704 7704 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ndir/main_ndir.go 62472 62472 0 0.00% 3776 3776 0 0.00% tinygo build -size short -o ./build/test.hex -target=microbit ./examples/ndir/main_ndir.go 66696 66696 0 0.00% 6852 6852 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 ./examples/ndir/main_ndir.go 12444 12444 0 0.00% 6168 6168 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mpu9150/main.go 14464 14464 0 0.00% 6204 6204 0 0.00% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/sh1106/macropad_spi 11284 11284 0 0.00% 6632 6632 0 0.00% tinygo build -size short -o ./build/test.hex -target=macropad-rp2040 ./examples/encoders/quadrature-interrupt 69940 69940 0 0.00% 7672 7672 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/mcp9808/main.go 45980 45980 0 0.00% 8228 8228 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=pico ./examples/tmc2209/main.go 14776 14776 0 0.00% 6164 6164 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/tmc5160/main.go 13264 13264 0 0.00% 5144 5144 0 0.00% tinygo build -size short -o ./build/test.uf2 -target=nicenano ./examples/sharpmem/main.go 63820 63820 0 0.00% 6576 6576 0 0.00% tinygo build -size short -o ./build/test.hex -target=feather-nrf52840 ./examples/max6675/main.go 15408 15408 0 0.00% 6224 6224 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/ens160/main.go 19172 19172 0 0.00% 6240 6240 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/si5351/main.go 24140 24140 0 0.00% 7536 7536 0 0.00% tinygo build -size short -o ./build/test.hex -target=pico ./examples/w5500/main.go 90116 90116 0 0.00% 8024 8024 0 0.00% tinygo build -size short -o ./build/test.hex -target=challenger-rp2040 ./examples/net/ntpclient/ 375408 375408 0 0.00% 17856 17856 0 0.00% tinygo build -size short -o ./build/test.hex -target=pyportal -stack-size 8kb ./examples/net/http-get/ 122804 122804 0 0.00% 8908 8908 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-nano33 -stack-size 8kb ./examples/net/tcpclient/ 355204 355204 0 0.00% 17156 17156 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/websocket/dial/ 105380 105380 0 0.00% 10888 10888 0 0.00% tinygo build -size short -o ./build/test.hex -target=metro-m4-airlift -stack-size 8kb ./examples/net/socket/ 419512 419512 0 0.00% 19884 19884 0 0.00% tinygo build -size short -o ./build/test.hex -target=matrixportal-m4 -stack-size 8kb ./examples/net/webstatic/ 169516 169516 0 0.00% 10908 10908 0 0.00% tinygo build -size short -o ./build/test.hex -target=arduino-mkrwifi1010 -stack-size 8kb ./examples/net/tlsclient/ 159260 159260 0 0.00% 9880 9880 0 0.00% tinygo build -size short -o ./build/test.hex -target=nano-rp2040 -stack-size 8kb ./examples/net/mqttclient/natiu/ 119128 119128 0 0.00% 14184 14184 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webclient/ 369988 369988 0 0.00% 22996 22996 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/webserver/ 370940 370940 0 0.00% 22912 22912 0 0.00% tinygo build -size short -o ./build/test.hex -target=wioterminal -stack-size 8kb ./examples/net/mqttclient/paho/ 177440 177440 0 0.00% 14996 14996 0 0.00% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2040 -stack-size 8kb ./examples/net/tlsclient/ 122644 122644 0 0.00% 13004 13004 0 0.00% tinygo build -size short -o ./build/test.hex -target=elecrow-rp2350 -stack-size 8kb ./examples/net/ntpclient/ 6711598 6711598 0 0.00% 1093186 1093186 0 0.00% |
Member
Author
|
A few more things to do on this, moving back to draft. |
deadprogram
marked this pull request as draft
July 9, 2026 13:41
deadprogram
force-pushed
the
esp32-irq-impl
branch
from
July 11, 2026 08:09
951120b to
750fc1f
Compare
| _arena_start = ABSOLUTE(.); | ||
| } >DRAM1 | ||
| _arena_end = ORIGIN(DRAM1) + LENGTH(DRAM1); | ||
| ASSERT((_arena_end - _arena_start) >= 32K, "arena region < 32K") |
Contributor
There was a problem hiding this comment.
I'm curious where and how are you using the .arena section.
Member
Author
There was a problem hiding this comment.
deadprogram
force-pushed
the
esp32-improve-builder
branch
from
July 13, 2026 22:37
9ab93af to
8aede78
Compare
deadprogram
force-pushed
the
esp32-irq-impl
branch
from
July 13, 2026 22:39
750fc1f to
5ab0afa
Compare
deadprogram
marked this pull request as ready for review
July 13, 2026 22:40
deadprogram
force-pushed
the
esp32-improve-builder
branch
2 times, most recently
from
July 18, 2026 13:24
a97c882 to
1adaa91
Compare
deadprogram
force-pushed
the
esp32-irq-impl
branch
2 times, most recently
from
July 18, 2026 20:05
3910033 to
fed2b91
Compare
deadprogram
force-pushed
the
esp32-improve-builder
branch
from
July 19, 2026 10:26
1adaa91 to
9db0ed1
Compare
…um version Signed-off-by: deadprogram <ron@hybridgroup.com>
…shing large programs This fixes the builder for ESP32 (original) by separating the RAM segments loadable by the ROM bootloader from flash-mapped segments (DROM/IROM) which require MMU setup by startup code. These changes are needed for to allow for ESP32 to correctly flashing large programs which as a result require XIP support. Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
…rrupt) Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
Add full flash XIP support for ESP32, enabling code and read-only data to execute/load directly from flash via the MMU cache rather than consuming precious SRAM. This increases available RAM from ~328KB to effectively unlimited for code/rodata, while keeping ~121KB for the Go heap. Changes: - src/device/esp/esp32.S: Add MMU initialization in call_start_cpu0 - Call ROM bootloader mmu_init() and cache_flash_mmu_set() to map DROM/IROM - Enable flash cache via ROM Cache_Read_Enable() - Fix tinygo_scanCurrentStack to spill all register windows for GC - targets/esp32-interrupts.S: Add exception diagnostics - targets/esp32.ld: Major linker script restructure for XIP - Add DROM (4MB @ 0x3F400000) and IROM (4MB @ 0x400D0000) regions - Move .rodata to DROM, main .text to IROM (both flash-mapped) - Keep boot code, vectors, and WiFi blob IRAM sections in SRAM0 - Create WiFi arena in SRAM1 pool 7/6 (64KB @ 0x3FFF0000) - Move .bss and heap to SRAM2 (200KB @ 0x3FFAE000), avoiding ROM/MAC regions - Add _drom_flash_addr variable (patched by builder with flash offset) - targets/esp32.json: Add linker wrap flags for malloc/free and WiFi functions Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
Work around an lld (LLVM 22) bug where l32r PC-relative offsets are miscalculated when auto-generated .literal.* sections are prepended to .text.* sections by the linker script. The assembler emits .literal entries for movi instructions whose constants exceed the 12-bit signed range; lld then resolves the l32r relocations with incorrect offsets, causing every l32r in the boot code to load from the wrong literal pool entry. The symptom was a TG0WDT_SYS_RESET boot loop: the watchdog disable code loaded wrong register addresses via l32r and silently wrote to the wrong peripheral registers, leaving the watchdog running. Fix by constructing PS_WOE_MASK (0x40000) with movi+slli instead of a single large-constant movi, eliminating all auto-generated .literal section entries. This is compatible with both LLVM 20 and LLVM 22. Also revert DRAM origin to 0x3FFAE000 (200K) and remove rom_phyFuns symbols that belong in a separate WiFi commit. Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
deadprogram
force-pushed
the
esp32-irq-impl
branch
from
July 19, 2026 16:51
fed2b91 to
6071711
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR add interrupt support (vector table, timer alarm, GPIO SetInterrupt) to the esp32.
It also then hooks the IRQ up for receiving UART data.
Tested locally on my venerable
esp32-mini32board.UPDATE: added the support needed for XIP and also the linker changes for minimal espradio support.
FURTHER UPDATE: this PR turned into all the commits to get initial WiFI on ESP32 working as well.
This PR needs #5511 to correctly flash the larger programs.