[Snek] [keith-packard/snek] be2411: Switch atmega32u4 devices to ubaboot

Keith Packard noreply at github.com
Wed Nov 20 12:37:25 PST 2024


  Branch: refs/heads/update-avr
  Home:   https://github.com/keith-packard/snek
  Commit: be24115773d162cb85b4715ffe23f51ba90eb8d8
      https://github.com/keith-packard/snek/commit/be24115773d162cb85b4715ffe23f51ba90eb8d8
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    A .gitmodules
    M Makefile
    M ports/itsybitsy5v/.gitignore
    M ports/itsybitsy5v/Makefile
    A ports/itsybitsy5v/snek-atmega32u4-install.1
    A ports/itsybitsy5v/snek-atmega32u4-install.in
    R ports/itsybitsy5v/snek-itsybitsy-install.1
    R ports/itsybitsy5v/snek-itsybitsy-install.in
    M ports/uduino/Makefile
    R ports/uduino/snek-uduino-install.1
    R ports/uduino/snek-uduino-install.in
    A ubaboot

  Log Message:
  -----------
  Switch atmega32u4 devices to ubaboot

This bootloader takes only 512 bytes of flash, leaving
plenty for snek to operate on all of the 32u4 targets.

Create a general-purpose atmega32u4 snek installer and
replace the single-device versions.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 57961164bd9de1a22deadbdda837df4ff2c0d071
      https://github.com/keith-packard/snek/commit/57961164bd9de1a22deadbdda837df4ff2c0d071
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M ports/uduino/ao-pins.h

  Log Message:
  -----------
  uduino: Remove unused defines in ao-pins.h

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 8e3e953318e0a0cd908b96648b82342bed8cfbb7
      https://github.com/keith-packard/snek/commit/8e3e953318e0a0cd908b96648b82342bed8cfbb7
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M ao/ao-product.c
    M ao/ao-usb.h
    M chips/atmega/snek-328p.c
    M chips/atmega/snek-atmega-serial.c
    M chips/atmega/snek-atmega.h
    M chips/avr/ao-arch.h
    M chips/avr/ao-snek-avr.c
    M chips/avr/ao-usb-avr.c
    M chips/avr/snek-avr.h
    M chips/qemu/snek-qemu.h
    M chips/samd21/ao-arch.h
    M ports/ev3/snek-ev3.h
    M ports/mega/snek-mega.c
    M ports/nano-every/snek-nano-every.c
    M ports/narrow-1284/snek-narrow-1284.c
    M ports/posix/snek-posix.h
    M snek-atof.c
    M snek-builtin.py
    M snek-code.c
    M snek-error.c
    M snek-exec.c
    M snek-frame.c
    M snek-lex.c
    M snek-memory.c
    M snek-name.c
    M snek-ssd1315.c
    M snek.h

  Log Message:
  -----------
  Use __flash for AVR code instead of PROGMEM

This uses the GCC memory space attribute so that the compiler will
automatically generate the correct memory access instructions instead
of requiring manual use of various progmem APIs. This both simplifies
the code and reduces its size.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: c2b3367315a44e57eb2f7752c124578f160f2f66
      https://github.com/keith-packard/snek/commit/c2b3367315a44e57eb2f7752c124578f160f2f66
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M chips/atmega/snek-328p.builtin

  Log Message:
  -----------
  atmega328p: Increase pool and value stack

The new version of GCC leaves more RAM available; take advantage of that
by increasing the heap size to 1kB and the value stack to 32 elements.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 11be46c6b061ccbe32769ed4eb30f2c8546a719e
      https://github.com/keith-packard/snek/commit/11be46c6b061ccbe32769ed4eb30f2c8546a719e
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M chips/atmega/snek-atmega-eeprom.c

  Log Message:
  -----------
  chips/atmega: Handle EEPROM that doesn't start at 0

On the atmega4809, avr-libc doesn't set E2END to be the last offset,
rather it's the last address. Use EEPROM_SIZE instead, which seems
to be the size - 1.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fc2b1e3fdefb70f79404a05a257f56da19e77747
      https://github.com/keith-packard/snek/commit/fc2b1e3fdefb70f79404a05a257f56da19e77747
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M chips/atmega/snek-atmega-serial.c

  Log Message:
  -----------
  chips/atmega: Support newer avr-libc

A bunch of the register definitions names have changed.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: a9561364da4559e0f77b907fbb4ec398726329ad
      https://github.com/keith-packard/snek/commit/a9561364da4559e0f77b907fbb4ec398726329ad
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M chips/atmega/snek-atmega.defs
    M chips/avr/snek-avr.defs
    A chips/avr/strfromg.c
    M ports/duemilanove/Makefile
    M ports/grove/Makefile
    M ports/grove/snek-grove.builtin
    M ports/lilypad/Makefile
    M ports/mega/Makefile
    M ports/nano-every/Makefile
    M ports/narrow-1284/Makefile
    M snek-pow.c

  Log Message:
  -----------
  Enable more features due to newer avr-gcc version

The newer GCC version generates smaller code, so we can
enable the input builtins on all of the avr targets now.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 1db9d4bea267e11e84bff2faafecf79048eac3f1
      https://github.com/keith-packard/snek/commit/1db9d4bea267e11e84bff2faafecf79048eac3f1
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    R ports/duemilanove-big/.gitignore
    R ports/duemilanove-big/Makefile
    R ports/duemilanove-big/snek-duemilanove-big-install.1.in
    R ports/duemilanove-big/snek-duemilanove-big-install.in
    R ports/lilypad-big/.gitignore
    R ports/lilypad-big/Makefile
    R ports/uno-big/.gitignore
    R ports/uno-big/Makefile
    M snek-install.defs

  Log Message:
  -----------
  Remove -big versions of ATmega328p ports

With the latest GCC version, there's enough space in the ROM for the
boot loader, even with all of the previous -big specific functions
enabled.

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: c8b9b79051b6de51e7f5e5e34e7eb7370be8ac46
      https://github.com/keith-packard/snek/commit/c8b9b79051b6de51e7f5e5e34e7eb7370be8ac46
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    A chips/avr/Makefile
    A chips/avr/dtoa.h
    A chips/avr/ftoa_engine.c
    A chips/avr/strfromg-test.c
    A chips/avr/strfromg.h

  Log Message:
  -----------
  chips/avr: Add test for strfromg

Make sure our custom strfromf function works correctly

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: 049c950050cc0095098f49140720f414e5ce53a8
      https://github.com/keith-packard/snek/commit/049c950050cc0095098f49140720f414e5ce53a8
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M ports/nano-every/snek-nano-every.builtin

  Log Message:
  -----------
  ports/nano-every: Define LED constant

Allows use of general blink program

Signed-off-by: Keith Packard <keithp at keithp.com>


  Commit: fc5d52062bfe8673d447265acbd8c61429541fad
      https://github.com/keith-packard/snek/commit/fc5d52062bfe8673d447265acbd8c61429541fad
  Author: Keith Packard <keithp at keithp.com>
  Date:   2024-11-20 (Wed, 20 Nov 2024)

  Changed paths:
    M ports/nano-every/Makefile

  Log Message:
  -----------
  ports/nano-every: Use custom avr-libc

Until debian's avr-libc gets updated, we'll need to use a custom version
while using debian's avr-gcc. This just points the includes and libraries
at a version installed in /opt/avr-libc for now.

Signed-off-by: Keith Packard <keithp at keithp.com>


Compare: https://github.com/keith-packard/snek/compare/6f062ddd9407...fc5d52062bfe

To unsubscribe from these emails, change your notification settings at https://github.com/keith-packard/snek/settings/notifications


More information about the Snek mailing list