diff --git a/targets/arduino.json b/targets/arduino.json index 978f5663..419c6312 100644 --- a/targets/arduino.json +++ b/targets/arduino.json @@ -2,7 +2,16 @@ "llvm-target": "avr-atmel-none", "build-tags": ["arduino", "atmega328p", "atmega", "avr5", "avr", "js", "wasm"], "linker": "avr-gcc", - "pre-link-args": ["-nostartfiles", "-mmcu=avr5", "-T", "targets/avr.ld", "-Wl,--gc-sections", "targets/avr.S", "src/device/avr/atmega328p.s"], + "pre-link-args": [ + "-nostartfiles", + "-mmcu=avr5", + "-Wl,--defsym=_bootloader_size=512", + "-T", "src/device/avr/atmega328p.ld", + "-T", "targets/avr.ld", + "-Wl,--gc-sections", + "targets/avr.S", + "src/device/avr/atmega328p.s" + ], "objcopy": "avr-objcopy", "flash": "avrdude -c arduino -p atmega328p -P {port} -U flash:w:{hex}" } diff --git a/targets/avr.ld b/targets/avr.ld index f2421c4b..5c6ddeef 100644 --- a/targets/avr.ld +++ b/targets/avr.ld @@ -1,11 +1,10 @@ MEMORY { - FLASH_TEXT (rw) : ORIGIN = 0, LENGTH = 32K - _bootloader_size - RAM (xrw) : ORIGIN = 0, LENGTH = 2K + FLASH_TEXT (rw) : ORIGIN = 0, LENGTH = __flash_size - _bootloader_size + RAM (xrw) : ORIGIN = 0, LENGTH = __ram_size } -_bootloader_size = 512; _stack_size = 512; SECTIONS