From 2ca93d301c8ec2b5046927ec24264f3aad0cfb86 Mon Sep 17 00:00:00 2001 From: Nia Waldvogel Date: Tue, 9 Jun 2026 16:31:36 -0400 Subject: [PATCH 1/2] gen-device: only generate device files for supported devices This changes the make gen-device command such that it only converts relevant device files. This saves a lot of build time. The process of determining which files to convert is now handled by make. Incremental builds are now supported. Appropriate parallel building is now done for all device generation (previously it was only handled properly for AVR). The generated file names were updated to match their source name formatting. I could probbably lowercase everything when converting them, but this would complicate the makefile. I don't really think this is worth it. --- GNUmakefile | 128 ++++++++++++++++++------- src/device/kendryte/.gitignore | 0 src/device/sifive/.gitignore | 0 src/device/stm32/.gitignore | 0 targets/atmega1280.json | 4 +- targets/atmega1284p.json | 4 +- targets/atmega2560.json | 4 +- targets/atmega328p.json | 4 +- targets/atmega328pb.json | 4 +- targets/atmega32u4.json | 4 +- targets/atsamd21e18a.json | 2 +- targets/atsamd21g18a.json | 2 +- targets/atsamd51g19a.json | 2 +- targets/atsamd51j19a.json | 2 +- targets/atsamd51j20a.json | 2 +- targets/atsamd51p19a.json | 2 +- targets/atsamd51p20a.json | 2 +- targets/atsame51j19a.json | 2 +- targets/atsame54p20a.json | 2 +- targets/attiny1616.json | 4 +- targets/attiny85.json | 4 +- targets/teensy36.json | 3 +- targets/teensy40.json | 2 +- targets/teensy41.json | 2 +- tools/gen-device-avr/gen-device-avr.go | 114 +++++++--------------- tools/gen-device-svd/gen-device-svd.go | 99 ++++++++----------- 26 files changed, 193 insertions(+), 205 deletions(-) create mode 100644 src/device/kendryte/.gitignore create mode 100644 src/device/sifive/.gitignore create mode 100644 src/device/stm32/.gitignore diff --git a/GNUmakefile b/GNUmakefile index ef6af6f2d3..2ad4f323b4 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -215,58 +215,112 @@ fmt-check: ## Warn if any source needs reformatting gen-device: gen-device-avr gen-device-esp gen-device-nrf gen-device-sam gen-device-sifive gen-device-kendryte gen-device-nxp gen-device-rp ## Generate microcontroller-specific sources ifneq ($(RENESAS), 0) -gen-device: gen-device-renesas +# Renesas is currently unused +#gen-device: gen-device-renesas endif ifneq ($(STM32), 0) gen-device: gen-device-stm32 endif -gen-device-avr: - @if [ ! -e lib/avr/README.md ]; then echo "Submodules have not been downloaded. Please download them using:\n git submodule update --init"; exit 1; fi - $(GO) build -o ./build/gen-device-avr ./tools/gen-device-avr/ - ./build/gen-device-avr lib/avr/packs/atmega src/device/avr/ - ./build/gen-device-avr lib/avr/packs/tiny src/device/avr/ - @GO111MODULE=off $(GO) fmt ./src/device/avr +build/gen-device-%: ./tools/gen-device-%/*.go + $(GO) build -o $@ ./tools/gen-device-$*/ -build/gen-device-svd: ./tools/gen-device-svd/*.go - $(GO) build -o $@ ./tools/gen-device-svd/ +gen-device-avr: gen-device-atmega gen-device-attiny -gen-device-esp: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif-Community -interrupts=software lib/cmsis-svd/data/Espressif-Community/ src/device/esp/ - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif -interrupts=software lib/cmsis-svd/data/Espressif/ src/device/esp/ - GO111MODULE=off $(GO) fmt ./src/device/esp +# ATmega -gen-device-nrf: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/NordicSemiconductor/nrfx/tree/master/mdk lib/nrfx/mdk/ src/device/nrf/ - GO111MODULE=off $(GO) fmt ./src/device/nrf +DEVICES_AVR_MEGA = 1280 1284P 2560 328PB 328P 32U4 -gen-device-nxp: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/NXP lib/cmsis-svd/data/NXP/ src/device/nxp/ - GO111MODULE=off $(GO) fmt ./src/device/nxp +gen-device-atmega: $(foreach m,$(DEVICES_AVR_MEGA),src/device/avr/ATmega$(m).go src/device/avr/ATmega$(m).s src/device/avr/ATmega$(m).ld) -gen-device-sam: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/Atmel lib/cmsis-svd/data/Atmel/ src/device/sam/ - GO111MODULE=off $(GO) fmt ./src/device/sam +src/device/avr/ATmega%.go src/device/avr/ATmega%.s src/device/avr/ATmega%.ld: lib/avr/packs/atmega/ATmega%.atdf build/gen-device-avr + build/gen-device-avr $< src/device/avr/ATmega$*.go src/device/avr/ATmega$*.s src/device/avr/ATmega$*.ld -gen-device-sifive: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/SiFive-Community -interrupts=software lib/cmsis-svd/data/SiFive-Community/ src/device/sifive/ - GO111MODULE=off $(GO) fmt ./src/device/sifive +# ATtiny -gen-device-kendryte: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/Kendryte-Community -interrupts=software lib/cmsis-svd/data/Kendryte-Community/ src/device/kendryte/ - GO111MODULE=off $(GO) fmt ./src/device/kendryte +DEVICES_AVR_TINY = 1616 85 -gen-device-stm32: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/tinygo-org/stm32-svd lib/stm32-svd/svd src/device/stm32/ - GO111MODULE=off $(GO) fmt ./src/device/stm32 +gen-device-attiny: $(foreach m,$(DEVICES_AVR_TINY),src/device/avr/ATtiny$(m).go src/device/avr/ATtiny$(m).s src/device/avr/ATtiny$(m).ld) -gen-device-rp: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/posborne/cmsis-svd/tree/master/data/RaspberryPi lib/cmsis-svd/data/RaspberryPi/ src/device/rp/ - GO111MODULE=off $(GO) fmt ./src/device/rp +src/device/avr/ATtiny%.go src/device/avr/ATtiny%.s src/device/avr/ATtiny%.ld: lib/avr/packs/tiny/ATtiny%.atdf build/gen-device-avr + build/gen-device-avr $< src/device/avr/ATtiny$*.go src/device/avr/ATtiny$*.s src/device/avr/ATtiny$*.ld + +# Espressif + +# Both Espressif and Espressif-Community define esp32. +# The Espressif directory takes priority. + +gen-device-esp: src/device/esp/esp32c3.go src/device/esp/esp32s3.go src/device/esp/esp32.go src/device/esp/esp8266.go + +src/device/esp/%.go: lib/cmsis-svd/data/Espressif/%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif -interrupts=software $< $@ + +src/device/esp/%.go: lib/cmsis-svd/data/Espressif-Community/%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif-Community -interrupts=software $< $@ + +# NRF + +DEVICES_NRF = 51 52833 52840 52 + +gen-device-nrf: $(foreach m,$(DEVICES_NRF),src/device/nrf/nrf$(m).go src/device/nrf/nrf$(m).s) + +src/device/nrf/nrf%.go src/device/nrf/nrf%.s: lib/nrfx/mdk/nrf%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/NordicSemiconductor/nrfx/tree/master/mdk -asm=src/device/nrf/nrf$*.s $< src/device/nrf/nrf$*.go + +# NXP + +DEVICES_NXP = MIMXRT1062 MK66F18 + +gen-device-nxp: $(foreach m,$(DEVICES_NXP),src/device/nxp/$(m).go src/device/nxp/$(m).s) + +src/device/nxp/%.go src/device/nxp/%.s: lib/cmsis-svd/data/NXP/%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/NXP -asm=src/device/nxp/$*.s $< src/device/nxp/$*.go + +# SAM + +DEVICES_SAM = D21E18A D21G18A D51G19A D51J19A D51J20A D51P19A D51P20A D51J19A E51J19A E54P20A + +gen-device-sam: $(foreach m,$(DEVICES_SAM),src/device/sam/ATSAM$(m).go src/device/sam/ATSAM$(m).s) + +src/device/sam/ATSAM%.go src/device/sam/ATSAM%.s: lib/cmsis-svd/data/Atmel/ATSAM%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Atmel -asm=src/device/sam/ATSAM$*.s $< src/device/sam/ATSAM$*.go + +# SiFive + +DEVICES_SIFIVE = e310x + +gen-device-sifive: $(foreach m,$(DEVICES_SIFIVE),src/device/sifive/$(m).go) + +src/device/sifive/%.go: lib/cmsis-svd/data/SiFive-Community/%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/SiFive-Community -interrupts=software $< $@ + +# Kendryte + +DEVICES_KENDRYTE = 210 + +gen-device-kendryte: $(foreach m,$(DEVICES_KENDRYTE),src/device/kendryte/k$(m).go) + +src/device/kendryte/k%.go: lib/cmsis-svd/data/Kendryte-Community/k%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Kendryte-Community -interrupts=software $< $@ + +# STM32 + +DEVICES_STM32 = f103 f405 f407 f469 f722 g0b1 l4r5 l0x1 l0x2 l4x2 l4x5 l4x6 l552 u585 wl5x_cm4 wle5 + +gen-device-stm32: $(foreach m,$(DEVICES_STM32),src/device/stm32/stm32$(m).go src/device/stm32/stm32$(m).s) + +src/device/stm32/stm32%.go src/device/stm32/stm32%.s: lib/stm32-svd/svd/stm32%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/tinygo-org/stm32-svd -asm=src/device/stm32/stm32$*.s $< src/device/stm32/stm32$*.go + +# Raspberry Pi + +DEVICES_RP = 2040 2350 + +gen-device-rp: $(foreach m,$(DEVICES_RP),src/device/rp/rp$(m).go src/device/rp/rp$(m).s) + +src/device/rp/rp%.go src/device/rp/rp%.s: lib/cmsis-svd/data/RaspberryPi/rp%.svd build/gen-device-svd + build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/RaspberryPi -asm=src/device/rp/rp$*.s $< src/device/rp/rp$*.go -gen-device-renesas: build/gen-device-svd - ./build/gen-device-svd -source=https://github.com/cmsis-svd/cmsis-svd-data/tree/master/data/Renesas lib/cmsis-svd/data/Renesas/ src/device/renesas/ - GO111MODULE=off $(GO) fmt ./src/device/renesas $(LLVM_PROJECTDIR)/llvm: git clone -b tinygo_20.x --depth=1 https://github.com/tinygo-org/llvm-project $(LLVM_PROJECTDIR) diff --git a/src/device/kendryte/.gitignore b/src/device/kendryte/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/device/sifive/.gitignore b/src/device/sifive/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/device/stm32/.gitignore b/src/device/stm32/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/targets/atmega1280.json b/targets/atmega1280.json index 34e78f41df..6eb102f007 100644 --- a/targets/atmega1280.json +++ b/targets/atmega1280.json @@ -6,9 +6,9 @@ "ldflags": [ "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/atmega1280.ld", + "linkerscript": "src/device/avr/ATmega1280.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega1280.s" + "src/device/avr/ATmega1280.s" ] } diff --git a/targets/atmega1284p.json b/targets/atmega1284p.json index 501fb58d17..9256513f04 100644 --- a/targets/atmega1284p.json +++ b/targets/atmega1284p.json @@ -7,10 +7,10 @@ "--defsym=_bootloader_size=0", "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/atmega1284p.ld", + "linkerscript": "src/device/avr/ATmega1284P.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega1284p.s" + "src/device/avr/ATmega1284P.s" ], "emulator": "simavr -m atmega1284p -f 20000000 {}" } diff --git a/targets/atmega2560.json b/targets/atmega2560.json index a00179ef98..eb454e8caf 100644 --- a/targets/atmega2560.json +++ b/targets/atmega2560.json @@ -6,9 +6,9 @@ "ldflags": [ "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/atmega2560.ld", + "linkerscript": "src/device/avr/ATmega2560.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega2560.s" + "src/device/avr/ATmega2560.s" ] } diff --git a/targets/atmega328p.json b/targets/atmega328p.json index d4098d4b86..c281dcec29 100644 --- a/targets/atmega328p.json +++ b/targets/atmega328p.json @@ -3,9 +3,9 @@ "cpu": "atmega328p", "build-tags": ["atmega328p", "atmega", "avr5"], "serial": "uart", - "linkerscript": "src/device/avr/atmega328p.ld", + "linkerscript": "src/device/avr/ATmega328P.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega328p.s" + "src/device/avr/ATmega328P.s" ] } diff --git a/targets/atmega328pb.json b/targets/atmega328pb.json index c4e1b447f4..1789f9f45f 100644 --- a/targets/atmega328pb.json +++ b/targets/atmega328pb.json @@ -7,9 +7,9 @@ "--defsym=_stack_size=512" ], "serial": "uart", - "linkerscript": "src/device/avr/atmega328pb.ld", + "linkerscript": "src/device/avr/ATmega328PB.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega328pb.s" + "src/device/avr/ATmega328PB.s" ] } diff --git a/targets/atmega32u4.json b/targets/atmega32u4.json index 7aa2c08bd2..75c7efb542 100644 --- a/targets/atmega32u4.json +++ b/targets/atmega32u4.json @@ -3,9 +3,9 @@ "cpu": "atmega32u4", "build-tags": ["atmega32u4", "avr5"], "serial": "none", - "linkerscript": "src/device/avr/atmega32u4.ld", + "linkerscript": "src/device/avr/ATmega32U4.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/atmega32u4.s" + "src/device/avr/ATmega32U4.s" ] } diff --git a/targets/atsamd21e18a.json b/targets/atsamd21e18a.json index 92b671c9f6..fb42e1e0b2 100644 --- a/targets/atsamd21e18a.json +++ b/targets/atsamd21e18a.json @@ -4,7 +4,7 @@ "serial": "usb", "linkerscript": "targets/atsamd21.ld", "extra-files": [ - "src/device/sam/atsamd21e18a.s" + "src/device/sam/ATSAMD21E18A.s" ], "openocd-transport": "swd", "openocd-target": "at91samdXX" diff --git a/targets/atsamd21g18a.json b/targets/atsamd21g18a.json index db46c96288..e6bb4231d1 100644 --- a/targets/atsamd21g18a.json +++ b/targets/atsamd21g18a.json @@ -4,7 +4,7 @@ "serial": "usb", "linkerscript": "targets/atsamd21.ld", "extra-files": [ - "src/device/sam/atsamd21g18a.s" + "src/device/sam/ATSAMD21G18A.s" ], "openocd-transport": "swd", "openocd-target": "at91samdXX" diff --git a/targets/atsamd51g19a.json b/targets/atsamd51g19a.json index 4534d1c1a8..5708bbec06 100644 --- a/targets/atsamd51g19a.json +++ b/targets/atsamd51g19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51g19a", "atsamd51g19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/atsamd51g19a.s" + "src/device/sam/ATSAMD51G19A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51j19a.json b/targets/atsamd51j19a.json index 2493ca4ddc..18c5011e53 100644 --- a/targets/atsamd51j19a.json +++ b/targets/atsamd51j19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51j19a", "atsamd51j19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/atsamd51j19a.s" + "src/device/sam/ATSAMD51J19A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51j20a.json b/targets/atsamd51j20a.json index 9f59e32d46..d5493a32eb 100644 --- a/targets/atsamd51j20a.json +++ b/targets/atsamd51j20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsamd51", "atsamd51j20", "atsamd51j20a"], "linkerscript": "targets/atsamd51j20a.ld", "extra-files": [ - "src/device/sam/atsamd51j20a.s" + "src/device/sam/ATSAMD51J20A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51p19a.json b/targets/atsamd51p19a.json index 6b2f6b5b39..c51adb00df 100644 --- a/targets/atsamd51p19a.json +++ b/targets/atsamd51p19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51p19a", "atsamd51p19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/atsamd51p19a.s" + "src/device/sam/ATSAMD51P19A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51p20a.json b/targets/atsamd51p20a.json index bc66ca0321..d18161b91e 100644 --- a/targets/atsamd51p20a.json +++ b/targets/atsamd51p20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsamd51", "atsamd51p20", "atsamd51p20a"], "linkerscript": "targets/atsamd51p20a.ld", "extra-files": [ - "src/device/sam/atsamd51p20a.s" + "src/device/sam/ATSAMD51P20A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsame51j19a.json b/targets/atsame51j19a.json index 98136769dd..93ef8599d4 100644 --- a/targets/atsame51j19a.json +++ b/targets/atsame51j19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsame51j19a", "atsame51j19", "atsame51", "atsame5x", "sam"], "linkerscript": "targets/atsame5xx19.ld", "extra-files": [ - "src/device/sam/atsame51j19a.s" + "src/device/sam/ATSAME51J19A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsame54p20a.json b/targets/atsame54p20a.json index f2450fb421..04192be37f 100644 --- a/targets/atsame54p20a.json +++ b/targets/atsame54p20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsame5x", "atsame54", "atsame54p20", "atsame54p20a"], "linkerscript": "targets/atsame5xx20-no-bootloader.ld", "extra-files": [ - "src/device/sam/atsame54p20a.s" + "src/device/sam/ATSAME54P20A.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/attiny1616.json b/targets/attiny1616.json index 38e645ae1b..8c5c50c79d 100644 --- a/targets/attiny1616.json +++ b/targets/attiny1616.json @@ -6,9 +6,9 @@ "cflags": [ "-D__AVR_ARCH__=103" ], - "linkerscript": "src/device/avr/attiny1616.ld", + "linkerscript": "src/device/avr/ATtiny1616.ld", "extra-files": [ - "src/device/avr/attiny1616.s" + "src/device/avr/ATtiny1616.s" ], "flash-command": "pymcuprog write -f {hex} --erase --verify -d attiny1616 -t uart -u {port}" } diff --git a/targets/attiny85.json b/targets/attiny85.json index 3fb1111479..a3f24b6718 100644 --- a/targets/attiny85.json +++ b/targets/attiny85.json @@ -5,9 +5,9 @@ "cflags": [ "-D__AVR_ARCH__=25" ], - "linkerscript": "src/device/avr/attiny85.ld", + "linkerscript": "src/device/avr/ATtiny85.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/attiny85.s" + "src/device/avr/ATtiny85.s" ] } diff --git a/targets/teensy36.json b/targets/teensy36.json index 253e397043..78503c74f6 100644 --- a/targets/teensy36.json +++ b/targets/teensy36.json @@ -4,9 +4,8 @@ "serial": "uart", "linkerscript": "targets/nxpmk66f18.ld", "extra-files": [ - "src/device/nxp/mk66f18.s", + "src/device/nxp/MK66F18.s", "targets/teensy36.s" ], "flash-command": "teensy_loader_cli -mmcu=mk66fx1m0 -v -w {hex}" } - diff --git a/targets/teensy40.json b/targets/teensy40.json index 223db6f6f1..3595a059e8 100644 --- a/targets/teensy40.json +++ b/targets/teensy40.json @@ -5,7 +5,7 @@ "automatic-stack-size": false, "linkerscript": "targets/mimxrt1062-teensy40.ld", "extra-files": [ - "src/device/nxp/mimxrt1062.s", + "src/device/nxp/MIMXRT1062.s", "targets/teensy40.s" ], "flash-command": "teensy_loader_cli -mmcu=imxrt1062 -v -w {hex}" diff --git a/targets/teensy41.json b/targets/teensy41.json index 8866bc48e3..28b2ea42ec 100644 --- a/targets/teensy41.json +++ b/targets/teensy41.json @@ -5,7 +5,7 @@ "automatic-stack-size": false, "linkerscript": "targets/mimxrt1062-teensy40.ld", "extra-files": [ - "src/device/nxp/mimxrt1062.s", + "src/device/nxp/MIMXRT1062.s", "targets/teensy40.s" ], "flash-command": "teensy_loader_cli -mmcu=imxrt1062 -v -w {hex}" diff --git a/tools/gen-device-avr/gen-device-avr.go b/tools/gen-device-avr/gen-device-avr.go index de32e3ed95..0fc01d04a4 100755 --- a/tools/gen-device-avr/gen-device-avr.go +++ b/tools/gen-device-avr/gen-device-avr.go @@ -1,18 +1,17 @@ package main import ( - "bufio" + "bytes" "encoding/xml" "fmt" + "go/format" "html/template" "math/bits" "os" "path/filepath" - "runtime" "sort" "strconv" "strings" - "sync" ) type AVRToolsDeviceFile struct { @@ -398,14 +397,8 @@ func readATDF(path string) (*Device, error) { }, nil } -func writeGo(outdir string, device *Device) error { +func writeGo(dst string, device *Device) error { // The Go module for this device. - outf, err := os.Create(outdir + "/" + device.metadata["nameLower"].(string) + ".go") - if err != nil { - return err - } - defer outf.Close() - w := bufio.NewWriter(outf) maxInterruptNum := 0 for _, intr := range device.interrupts { @@ -484,9 +477,11 @@ type {{.Name}}_Type struct { {{end}} {{end}} `)) - err = t.Execute(w, map[string]interface{}{ + var buf bytes.Buffer + w := &buf + err := t.Execute(w, map[string]interface{}{ "metadata": device.metadata, - "pkgName": filepath.Base(strings.TrimRight(outdir, "/")), + "pkgName": filepath.Base(filepath.Dir(dst)), "interrupts": device.interrupts, "interruptMax": maxInterruptNum, "instances": device.instances, @@ -559,12 +554,20 @@ type {{.Name}}_Type struct { } fmt.Fprintf(w, ")\n") } - return w.Flush() + + // Format the source. + formatted, err := format.Source(buf.Bytes()) + if err != nil { + return err + } + + // Save the file. + return os.WriteFile(dst, formatted, 0666) } -func writeAsm(outdir string, device *Device) error { +func writeAsm(dst string, device *Device) error { // The interrupt vector, which is hard to write directly in Go. - out, err := os.Create(outdir + "/" + device.metadata["nameLower"].(string) + ".s") + out, err := os.Create(dst) if err != nil { return err } @@ -628,9 +631,9 @@ __vector_default: return nil } -func writeLD(outdir string, device *Device) error { +func writeLD(dst string, device *Device) error { // Variables for the linker script. - out, err := os.Create(outdir + "/" + device.metadata["nameLower"].(string) + ".ld") + out, err := os.Create(dst) if err != nil { return err } @@ -649,73 +652,28 @@ __num_isrs = {{.numInterrupts}}; return t.Execute(out, device.metadata) } -func processFile(filepath, outdir string) error { - device, err := readATDF(filepath) +func main() { + src := os.Args[1] + dstGo := os.Args[2] + dstASM := os.Args[3] + dstLD := os.Args[4] + + device, err := readATDF(src) if err != nil { - return err + fmt.Fprintln(os.Stderr, err) + os.Exit(1) } - err = writeGo(outdir, device) + err = writeGo(dstGo, device) if err != nil { - return err + fmt.Fprintln(os.Stderr, err) + os.Exit(1) } - err = writeAsm(outdir, device) + err = writeAsm(dstASM, device) if err != nil { - return err - } - return writeLD(outdir, device) -} - -func generate(indir, outdir string) error { - // Read list of ATDF files to process. - matches, err := filepath.Glob(indir + "/*.atdf") - if err != nil { - return err - } - - // Start worker goroutines. - var wg sync.WaitGroup - workChan := make(chan string) - errChan := make(chan error, 1) - for i := 0; i < runtime.NumCPU(); i++ { - go func() { - for filepath := range workChan { - err := processFile(filepath, outdir) - wg.Done() - if err != nil { - // Store error to errChan if no error was stored before. - select { - case errChan <- err: - default: - } - } - } - }() - } - - // Submit all jobs to the goroutines. - wg.Add(len(matches)) - for _, filepath := range matches { - fmt.Println(filepath) - workChan <- filepath - } - close(workChan) - - // Wait until all workers have finished. - wg.Wait() - - // Check for an error. - select { - case err := <-errChan: - return err - default: - return nil + fmt.Fprintln(os.Stderr, err) + os.Exit(1) } -} - -func main() { - indir := os.Args[1] // directory with register descriptor files (*.atdf) - outdir := os.Args[2] // output directory - err := generate(indir, outdir) + err = writeLD(dstLD, device) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) diff --git a/tools/gen-device-svd/gen-device-svd.go b/tools/gen-device-svd/gen-device-svd.go index ef9dedff97..5b5d73e211 100755 --- a/tools/gen-device-svd/gen-device-svd.go +++ b/tools/gen-device-svd/gen-device-svd.go @@ -2,11 +2,11 @@ package main import ( "bufio" + "bytes" "encoding/xml" - "errors" "flag" "fmt" - "io/fs" + "go/format" "os" "path/filepath" "regexp" @@ -1215,14 +1215,7 @@ func parseRegister(groupName string, regEl *SVDRegister, baseAddress uint64, bit } // The Go module for this device. -func writeGo(outdir string, device *Device, interruptSystem string) error { - outf, err := os.Create(filepath.Join(outdir, device.Metadata.NameLower+".go")) - if err != nil { - return err - } - defer outf.Close() - w := bufio.NewWriter(outf) - +func writeGo(dst string, device *Device, interruptSystem string) error { maxInterruptValue := 0 for _, intr := range device.Interrupts { if intr.Value > maxInterruptValue { @@ -1326,10 +1319,12 @@ var ( ) `)) - pkgName := filepath.Base(strings.TrimRight(outdir, "/")) + pkgName := filepath.Base(filepath.Dir(dst)) tweakDevice(device, pkgName) - err = t.Execute(w, map[string]interface{}{ + var buf bytes.Buffer + w := &buf + err := t.Execute(w, map[string]interface{}{ "device": device, "pkgName": pkgName, "interruptMax": maxInterruptValue, @@ -1594,10 +1589,17 @@ var ( w.WriteString(")\n") } - return w.Flush() + // Format the source. + formatted, err := format.Source(buf.Bytes()) + if err != nil { + return err + } + + // Save the file. + return os.WriteFile(dst, formatted, 0666) } -func writeGoRegisterConstants(w *bufio.Writer, register *PeripheralField, name string) { +func writeGoRegisterConstants(w *bytes.Buffer, register *PeripheralField, name string) { w.WriteString("\n\t// " + name) if register.Description != "" { if isMultiline(register.Description) { @@ -1619,7 +1621,7 @@ func writeGoRegisterConstants(w *bufio.Writer, register *PeripheralField, name s } } -func writeGoRegisterBitfieldType(w *bufio.Writer, register *PeripheralField, peripheralName, registerName string) { +func writeGoRegisterBitfieldType(w *bytes.Buffer, register *PeripheralField, peripheralName, registerName string) { if len(register.Bitfields) == 0 { return } @@ -1692,8 +1694,8 @@ func writeGoRegisterBitfieldType(w *bufio.Writer, register *PeripheralField, per } // The interrupt vector, which is hard to write directly in Go. -func writeAsm(outdir string, device *Device) error { - outf, err := os.Create(filepath.Join(outdir, device.Metadata.NameLower+".s")) +func writeAsm(dst string, device *Device) error { + outf, err := os.Create(dst) if err != nil { return err } @@ -1796,58 +1798,33 @@ __isr_vector: return w.Flush() } -func generate(indir, outdir, sourceURL, interruptSystem string) error { - if _, err := os.Stat(indir); errors.Is(err, fs.ErrNotExist) { - fmt.Fprintln(os.Stderr, "cannot find input directory:", indir) - os.Exit(1) - } - os.MkdirAll(outdir, 0777) - - infiles, err := filepath.Glob(filepath.Join(indir, "*.svd")) - if err != nil { - fmt.Fprintln(os.Stderr, "could not read .svd files:", err) - os.Exit(1) - } - sort.Strings(infiles) - for _, infile := range infiles { - fmt.Println(infile) - device, err := readSVD(infile, sourceURL) - if err != nil { - return fmt.Errorf("failed to read: %w", err) - } - err = writeGo(outdir, device, interruptSystem) - if err != nil { - return fmt.Errorf("failed to write Go file: %w", err) - } - switch interruptSystem { - case "software": - // Nothing to do. - case "hardware": - err = writeAsm(outdir, device) - if err != nil { - return fmt.Errorf("failed to write assembly file: %w", err) - } - default: - return fmt.Errorf("unknown interrupt system: %s", interruptSystem) - } - } - return nil -} - func main() { - sourceURL := flag.String("source", "", "source SVD file") + sourceURL := flag.String("url", "", "URL of source SVD repository") interruptSystem := flag.String("interrupts", "hardware", "interrupt system in use (software, hardware)") + asmDst := flag.String("asm", "", "destination path for assembly") flag.Parse() if flag.NArg() != 2 { - fmt.Fprintln(os.Stderr, "provide exactly two arguments: input directory (with .svd files) and output directory for generated files") + fmt.Fprintln(os.Stderr, "provide exactly two arguments: input path (.svd) and output path (.go)") flag.PrintDefaults() return } - indir := flag.Arg(0) - outdir := flag.Arg(1) - err := generate(indir, outdir, *sourceURL, *interruptSystem) + src := flag.Arg(0) + dst := flag.Arg(1) + device, err := readSVD(src, *sourceURL) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to read: %s\n", err) + os.Exit(1) + } + err = writeGo(dst, device, *interruptSystem) if err != nil { - fmt.Fprintln(os.Stderr, err) + fmt.Fprintf(os.Stderr, "failed to write Go file: %s\n", err) os.Exit(1) } + if asm := *asmDst; asm != "" { + err = writeAsm(asm, device) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to write assembly file: %s\n", err) + os.Exit(1) + } + } } From 43026cc4486818af23cd74a0d389da63fb3b1d36 Mon Sep 17 00:00:00 2001 From: Nia Waldvogel Date: Fri, 12 Jun 2026 14:26:59 -0400 Subject: [PATCH 2/2] change generated device files back to lowercase --- GNUmakefile | 125 +++++++++++++------------------------- targets/atmega1280.json | 4 +- targets/atmega1284p.json | 4 +- targets/atmega2560.json | 4 +- targets/atmega328p.json | 4 +- targets/atmega328pb.json | 4 +- targets/atmega32u4.json | 4 +- targets/atsamd21e18a.json | 2 +- targets/atsamd21g18a.json | 2 +- targets/atsamd51g19a.json | 2 +- targets/atsamd51j19a.json | 2 +- targets/atsamd51j20a.json | 2 +- targets/atsamd51p19a.json | 2 +- targets/atsamd51p20a.json | 2 +- targets/atsame51j19a.json | 2 +- targets/atsame54p20a.json | 2 +- targets/attiny1616.json | 4 +- targets/attiny85.json | 4 +- targets/teensy36.json | 2 +- targets/teensy40.json | 2 +- targets/teensy41.json | 2 +- 21 files changed, 69 insertions(+), 112 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 2ad4f323b4..d9a95b00a7 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -225,101 +225,58 @@ endif build/gen-device-%: ./tools/gen-device-%/*.go $(GO) build -o $@ ./tools/gen-device-$*/ -gen-device-avr: gen-device-atmega gen-device-attiny +toUpper = $(shell echo $(1) | tr '[a-z0-9]' '[A-Z0-9]') +toLower = $(shell echo $(1) | tr '[A-Z0-9]' '[a-z0-9]') -# ATmega +define avr_gen_rule +gen-device-avr: $(1).go $(1).s $(1).ld -DEVICES_AVR_MEGA = 1280 1284P 2560 328PB 328P 32U4 +$(1).go $(1).s $(1).ld &: $(2) build/gen-device-avr + build/gen-device-avr $$< $(1).go $(1).s $(1).ld -gen-device-atmega: $(foreach m,$(DEVICES_AVR_MEGA),src/device/avr/ATmega$(m).go src/device/avr/ATmega$(m).s src/device/avr/ATmega$(m).ld) +endef +define gen_device_software_rule +gen-device-$(1): $(2).go -src/device/avr/ATmega%.go src/device/avr/ATmega%.s src/device/avr/ATmega%.ld: lib/avr/packs/atmega/ATmega%.atdf build/gen-device-avr - build/gen-device-avr $< src/device/avr/ATmega$*.go src/device/avr/ATmega$*.s src/device/avr/ATmega$*.ld +$(2).go: $(3) build/gen-device-svd + build/gen-device-svd -url=$(4) -interrupts=software $$< $$@ -# ATtiny +endef +define gen_device_rule +gen-device-$(1): $(2).go $(2).s -DEVICES_AVR_TINY = 1616 85 +$(2).go $(2).s &: $(3) build/gen-device-svd + build/gen-device-svd -url=$(4) -asm=$(2).s $$< $(2).go -gen-device-attiny: $(foreach m,$(DEVICES_AVR_TINY),src/device/avr/ATtiny$(m).go src/device/avr/ATtiny$(m).s src/device/avr/ATtiny$(m).ld) +endef -src/device/avr/ATtiny%.go src/device/avr/ATtiny%.s src/device/avr/ATtiny%.ld: lib/avr/packs/tiny/ATtiny%.atdf build/gen-device-avr - build/gen-device-avr $< src/device/avr/ATtiny$*.go src/device/avr/ATtiny$*.s src/device/avr/ATtiny$*.ld - -# Espressif - -# Both Espressif and Espressif-Community define esp32. -# The Espressif directory takes priority. - -gen-device-esp: src/device/esp/esp32c3.go src/device/esp/esp32s3.go src/device/esp/esp32.go src/device/esp/esp8266.go - -src/device/esp/%.go: lib/cmsis-svd/data/Espressif/%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif -interrupts=software $< $@ - -src/device/esp/%.go: lib/cmsis-svd/data/Espressif-Community/%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Espressif-Community -interrupts=software $< $@ - -# NRF - -DEVICES_NRF = 51 52833 52840 52 - -gen-device-nrf: $(foreach m,$(DEVICES_NRF),src/device/nrf/nrf$(m).go src/device/nrf/nrf$(m).s) - -src/device/nrf/nrf%.go src/device/nrf/nrf%.s: lib/nrfx/mdk/nrf%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/NordicSemiconductor/nrfx/tree/master/mdk -asm=src/device/nrf/nrf$*.s $< src/device/nrf/nrf$*.go - -# NXP +avr_gen_group = $(foreach m,$(3),$(call avr_gen_rule,src/device/avr/$(1)$(m),lib/avr/packs/$(2)$(call toUpper,$(m)).atdf)) +gen_device_software_group = $(foreach m,$(4),$(call gen_device_software_rule,$(1),src/device/$(1)/$(call toLower,$(m)),$(2)/$(m).svd,$(3))) +gen_device_group = $(foreach m,$(4),$(call gen_device_rule,$(1),src/device/$(1)/$(call toLower,$(m)),$(2)/$(m).svd,$(3))) +DEVICES_ATMEGA = 1280 1284p 2560 328pb 328p 32u4 +DEVICES_ATTINY = 1616 85 +DEVICES_ESP = esp32 esp32c3 esp32s3 +DEVICES_ESP_COMMUNITY = esp8266 +DEVICES_NRF = nrf51 nrf52 nrf52833 nrf52840 DEVICES_NXP = MIMXRT1062 MK66F18 - -gen-device-nxp: $(foreach m,$(DEVICES_NXP),src/device/nxp/$(m).go src/device/nxp/$(m).s) - -src/device/nxp/%.go src/device/nxp/%.s: lib/cmsis-svd/data/NXP/%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/NXP -asm=src/device/nxp/$*.s $< src/device/nxp/$*.go - -# SAM - -DEVICES_SAM = D21E18A D21G18A D51G19A D51J19A D51J20A D51P19A D51P20A D51J19A E51J19A E54P20A - -gen-device-sam: $(foreach m,$(DEVICES_SAM),src/device/sam/ATSAM$(m).go src/device/sam/ATSAM$(m).s) - -src/device/sam/ATSAM%.go src/device/sam/ATSAM%.s: lib/cmsis-svd/data/Atmel/ATSAM%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Atmel -asm=src/device/sam/ATSAM$*.s $< src/device/sam/ATSAM$*.go - -# SiFive - +DEVICES_SAM = ATSAMD21E18A ATSAMD21G18A ATSAMD51G19A ATSAMD51J19A ATSAMD51J20A ATSAMD51P19A ATSAMD51P20A ATSAME51J19A ATSAME54P20A DEVICES_SIFIVE = e310x - -gen-device-sifive: $(foreach m,$(DEVICES_SIFIVE),src/device/sifive/$(m).go) - -src/device/sifive/%.go: lib/cmsis-svd/data/SiFive-Community/%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/SiFive-Community -interrupts=software $< $@ - -# Kendryte - -DEVICES_KENDRYTE = 210 - -gen-device-kendryte: $(foreach m,$(DEVICES_KENDRYTE),src/device/kendryte/k$(m).go) - -src/device/kendryte/k%.go: lib/cmsis-svd/data/Kendryte-Community/k%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/Kendryte-Community -interrupts=software $< $@ - -# STM32 - -DEVICES_STM32 = f103 f405 f407 f469 f722 g0b1 l4r5 l0x1 l0x2 l4x2 l4x5 l4x6 l552 u585 wl5x_cm4 wle5 - -gen-device-stm32: $(foreach m,$(DEVICES_STM32),src/device/stm32/stm32$(m).go src/device/stm32/stm32$(m).s) - -src/device/stm32/stm32%.go src/device/stm32/stm32%.s: lib/stm32-svd/svd/stm32%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/tinygo-org/stm32-svd -asm=src/device/stm32/stm32$*.s $< src/device/stm32/stm32$*.go - -# Raspberry Pi - -DEVICES_RP = 2040 2350 - -gen-device-rp: $(foreach m,$(DEVICES_RP),src/device/rp/rp$(m).go src/device/rp/rp$(m).s) - -src/device/rp/rp%.go src/device/rp/rp%.s: lib/cmsis-svd/data/RaspberryPi/rp%.svd build/gen-device-svd - build/gen-device-svd -url=https://github.com/posborne/cmsis-svd/tree/master/data/RaspberryPi -asm=src/device/rp/rp$*.s $< src/device/rp/rp$*.go +DEVICES_KENDRYTE = k210 +DEVICES_STM32 = stm32f103 stm32f405 stm32f407 stm32f469 stm32f722 stm32g0b1 stm32l4r5 stm32l0x1 stm32l0x2 stm32l4x2 stm32l4x5 stm32l4x6 stm32l552 stm32u585 stm32wl5x_cm4 stm32wle5 +DEVICES_RP = rp2040 rp2350 + +$(eval $(call avr_gen_group,atmega,atmega/ATmega,$(DEVICES_ATMEGA))) +$(eval $(call avr_gen_group,attiny,tiny/ATtiny,$(DEVICES_ATTINY))) +$(eval $(call gen_device_software_group,esp,lib/cmsis-svd/data/Espressif,https://github.com/posborne/cmsis-svd/tree/master/data/Espressif,$(DEVICES_ESP))) +$(eval $(call gen_device_software_group,esp,lib/cmsis-svd/data/Espressif-Community,https://github.com/posborne/cmsis-svd/tree/master/data/Espressif-Community,$(DEVICES_ESP_COMMUNITY))) +$(eval $(call gen_device_group,nrf,lib/nrfx/mdk,https://github.com/NordicSemiconductor/nrfx/tree/master/mdk,$(DEVICES_NRF))) +$(eval $(call gen_device_group,nxp,lib/cmsis-svd/data/NXP,https://github.com/posborne/cmsis-svd/tree/master/data/NXP,MIMXRT1062 MK66F18)) +$(eval $(call gen_device_group,sam,lib/cmsis-svd/data/Atmel,https://github.com/posborne/cmsis-svd/tree/master/data/Atmel,$(DEVICES_SAM))) +$(eval $(call gen_device_software_group,sifive,lib/cmsis-svd/data/SiFive-Community,https://github.com/posborne/cmsis-svd/tree/master/data/SiFive-Community,$(DEVICES_SIFIVE))) +$(eval $(call gen_device_software_group,kendryte,lib/cmsis-svd/data/Kendryte-Community,https://github.com/posborne/cmsis-svd/tree/master/data/Kendryte-Community,$(DEVICES_KENDRYTE))) +$(eval $(call gen_device_group,stm32,lib/stm32-svd/svd,https://github.com/tinygo-org/stm32-svd,$(DEVICES_STM32))) +$(eval $(call gen_device_group,rp,lib/cmsis-svd/data/RaspberryPi,https://github.com/posborne/cmsis-svd/tree/master/data/RaspberryPi,$(DEVICES_RP))) $(LLVM_PROJECTDIR)/llvm: diff --git a/targets/atmega1280.json b/targets/atmega1280.json index 6eb102f007..34e78f41df 100644 --- a/targets/atmega1280.json +++ b/targets/atmega1280.json @@ -6,9 +6,9 @@ "ldflags": [ "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/ATmega1280.ld", + "linkerscript": "src/device/avr/atmega1280.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega1280.s" + "src/device/avr/atmega1280.s" ] } diff --git a/targets/atmega1284p.json b/targets/atmega1284p.json index 9256513f04..501fb58d17 100644 --- a/targets/atmega1284p.json +++ b/targets/atmega1284p.json @@ -7,10 +7,10 @@ "--defsym=_bootloader_size=0", "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/ATmega1284P.ld", + "linkerscript": "src/device/avr/atmega1284p.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega1284P.s" + "src/device/avr/atmega1284p.s" ], "emulator": "simavr -m atmega1284p -f 20000000 {}" } diff --git a/targets/atmega2560.json b/targets/atmega2560.json index eb454e8caf..a00179ef98 100644 --- a/targets/atmega2560.json +++ b/targets/atmega2560.json @@ -6,9 +6,9 @@ "ldflags": [ "--defsym=_stack_size=512" ], - "linkerscript": "src/device/avr/ATmega2560.ld", + "linkerscript": "src/device/avr/atmega2560.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega2560.s" + "src/device/avr/atmega2560.s" ] } diff --git a/targets/atmega328p.json b/targets/atmega328p.json index c281dcec29..d4098d4b86 100644 --- a/targets/atmega328p.json +++ b/targets/atmega328p.json @@ -3,9 +3,9 @@ "cpu": "atmega328p", "build-tags": ["atmega328p", "atmega", "avr5"], "serial": "uart", - "linkerscript": "src/device/avr/ATmega328P.ld", + "linkerscript": "src/device/avr/atmega328p.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega328P.s" + "src/device/avr/atmega328p.s" ] } diff --git a/targets/atmega328pb.json b/targets/atmega328pb.json index 1789f9f45f..c4e1b447f4 100644 --- a/targets/atmega328pb.json +++ b/targets/atmega328pb.json @@ -7,9 +7,9 @@ "--defsym=_stack_size=512" ], "serial": "uart", - "linkerscript": "src/device/avr/ATmega328PB.ld", + "linkerscript": "src/device/avr/atmega328pb.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega328PB.s" + "src/device/avr/atmega328pb.s" ] } diff --git a/targets/atmega32u4.json b/targets/atmega32u4.json index 75c7efb542..7aa2c08bd2 100644 --- a/targets/atmega32u4.json +++ b/targets/atmega32u4.json @@ -3,9 +3,9 @@ "cpu": "atmega32u4", "build-tags": ["atmega32u4", "avr5"], "serial": "none", - "linkerscript": "src/device/avr/ATmega32U4.ld", + "linkerscript": "src/device/avr/atmega32u4.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATmega32U4.s" + "src/device/avr/atmega32u4.s" ] } diff --git a/targets/atsamd21e18a.json b/targets/atsamd21e18a.json index fb42e1e0b2..92b671c9f6 100644 --- a/targets/atsamd21e18a.json +++ b/targets/atsamd21e18a.json @@ -4,7 +4,7 @@ "serial": "usb", "linkerscript": "targets/atsamd21.ld", "extra-files": [ - "src/device/sam/ATSAMD21E18A.s" + "src/device/sam/atsamd21e18a.s" ], "openocd-transport": "swd", "openocd-target": "at91samdXX" diff --git a/targets/atsamd21g18a.json b/targets/atsamd21g18a.json index e6bb4231d1..db46c96288 100644 --- a/targets/atsamd21g18a.json +++ b/targets/atsamd21g18a.json @@ -4,7 +4,7 @@ "serial": "usb", "linkerscript": "targets/atsamd21.ld", "extra-files": [ - "src/device/sam/ATSAMD21G18A.s" + "src/device/sam/atsamd21g18a.s" ], "openocd-transport": "swd", "openocd-target": "at91samdXX" diff --git a/targets/atsamd51g19a.json b/targets/atsamd51g19a.json index 5708bbec06..4534d1c1a8 100644 --- a/targets/atsamd51g19a.json +++ b/targets/atsamd51g19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51g19a", "atsamd51g19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/ATSAMD51G19A.s" + "src/device/sam/atsamd51g19a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51j19a.json b/targets/atsamd51j19a.json index 18c5011e53..2493ca4ddc 100644 --- a/targets/atsamd51j19a.json +++ b/targets/atsamd51j19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51j19a", "atsamd51j19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/ATSAMD51J19A.s" + "src/device/sam/atsamd51j19a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51j20a.json b/targets/atsamd51j20a.json index d5493a32eb..9f59e32d46 100644 --- a/targets/atsamd51j20a.json +++ b/targets/atsamd51j20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsamd51", "atsamd51j20", "atsamd51j20a"], "linkerscript": "targets/atsamd51j20a.ld", "extra-files": [ - "src/device/sam/ATSAMD51J20A.s" + "src/device/sam/atsamd51j20a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51p19a.json b/targets/atsamd51p19a.json index c51adb00df..6b2f6b5b39 100644 --- a/targets/atsamd51p19a.json +++ b/targets/atsamd51p19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsamd51p19a", "atsamd51p19", "atsamd51", "sam"], "linkerscript": "targets/atsamd51.ld", "extra-files": [ - "src/device/sam/ATSAMD51P19A.s" + "src/device/sam/atsamd51p19a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsamd51p20a.json b/targets/atsamd51p20a.json index d18161b91e..bc66ca0321 100644 --- a/targets/atsamd51p20a.json +++ b/targets/atsamd51p20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsamd51", "atsamd51p20", "atsamd51p20a"], "linkerscript": "targets/atsamd51p20a.ld", "extra-files": [ - "src/device/sam/ATSAMD51P20A.s" + "src/device/sam/atsamd51p20a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsame51j19a.json b/targets/atsame51j19a.json index 93ef8599d4..98136769dd 100644 --- a/targets/atsame51j19a.json +++ b/targets/atsame51j19a.json @@ -3,7 +3,7 @@ "build-tags": ["atsame51j19a", "atsame51j19", "atsame51", "atsame5x", "sam"], "linkerscript": "targets/atsame5xx19.ld", "extra-files": [ - "src/device/sam/ATSAME51J19A.s" + "src/device/sam/atsame51j19a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/atsame54p20a.json b/targets/atsame54p20a.json index 04192be37f..f2450fb421 100644 --- a/targets/atsame54p20a.json +++ b/targets/atsame54p20a.json @@ -3,7 +3,7 @@ "build-tags": ["sam", "atsame5x", "atsame54", "atsame54p20", "atsame54p20a"], "linkerscript": "targets/atsame5xx20-no-bootloader.ld", "extra-files": [ - "src/device/sam/ATSAME54P20A.s" + "src/device/sam/atsame54p20a.s" ], "openocd-transport": "swd", "openocd-target": "atsame5x" diff --git a/targets/attiny1616.json b/targets/attiny1616.json index 8c5c50c79d..38e645ae1b 100644 --- a/targets/attiny1616.json +++ b/targets/attiny1616.json @@ -6,9 +6,9 @@ "cflags": [ "-D__AVR_ARCH__=103" ], - "linkerscript": "src/device/avr/ATtiny1616.ld", + "linkerscript": "src/device/avr/attiny1616.ld", "extra-files": [ - "src/device/avr/ATtiny1616.s" + "src/device/avr/attiny1616.s" ], "flash-command": "pymcuprog write -f {hex} --erase --verify -d attiny1616 -t uart -u {port}" } diff --git a/targets/attiny85.json b/targets/attiny85.json index a3f24b6718..3fb1111479 100644 --- a/targets/attiny85.json +++ b/targets/attiny85.json @@ -5,9 +5,9 @@ "cflags": [ "-D__AVR_ARCH__=25" ], - "linkerscript": "src/device/avr/ATtiny85.ld", + "linkerscript": "src/device/avr/attiny85.ld", "extra-files": [ "targets/avr.S", - "src/device/avr/ATtiny85.s" + "src/device/avr/attiny85.s" ] } diff --git a/targets/teensy36.json b/targets/teensy36.json index 78503c74f6..1d6f9c673a 100644 --- a/targets/teensy36.json +++ b/targets/teensy36.json @@ -4,7 +4,7 @@ "serial": "uart", "linkerscript": "targets/nxpmk66f18.ld", "extra-files": [ - "src/device/nxp/MK66F18.s", + "src/device/nxp/mk66f18.s", "targets/teensy36.s" ], "flash-command": "teensy_loader_cli -mmcu=mk66fx1m0 -v -w {hex}" diff --git a/targets/teensy40.json b/targets/teensy40.json index 3595a059e8..223db6f6f1 100644 --- a/targets/teensy40.json +++ b/targets/teensy40.json @@ -5,7 +5,7 @@ "automatic-stack-size": false, "linkerscript": "targets/mimxrt1062-teensy40.ld", "extra-files": [ - "src/device/nxp/MIMXRT1062.s", + "src/device/nxp/mimxrt1062.s", "targets/teensy40.s" ], "flash-command": "teensy_loader_cli -mmcu=imxrt1062 -v -w {hex}" diff --git a/targets/teensy41.json b/targets/teensy41.json index 28b2ea42ec..8866bc48e3 100644 --- a/targets/teensy41.json +++ b/targets/teensy41.json @@ -5,7 +5,7 @@ "automatic-stack-size": false, "linkerscript": "targets/mimxrt1062-teensy40.ld", "extra-files": [ - "src/device/nxp/MIMXRT1062.s", + "src/device/nxp/mimxrt1062.s", "targets/teensy40.s" ], "flash-command": "teensy_loader_cli -mmcu=imxrt1062 -v -w {hex}"