-
Notifications
You must be signed in to change notification settings - Fork 1
87 lines (85 loc) · 4.44 KB
/
Copy pathbuild.yml
File metadata and controls
87 lines (85 loc) · 4.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: build-firmware
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: install-build-tools
run: |
wget https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/avr8-gnu-toolchain-3.7.0.1796-linux.any.x86_64.tar.gz
tar -xf *.tar.gz
- name: install-dfp-package
run: |
wget http://packs.download.atmel.com/Atmel.ATmega_DFP.2.0.401.atpack
unzip *.atpack -d ./library/DFP
- name: build-adc-firmware
run: |
mkdir ADC
cd ADC
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/adc/main.c
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/adc/adc.c
cd ..
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=atmega16a -o main_adc.elf ./ADC/main.o ./ADC/adc.o
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex main_adc.elf main_adc.hex
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main_adc.elf main_adc.eep
- name: build-lcd-firmware
run: |
mkdir LCD
cd LCD
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/lcd/main.c
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/lcd/lcd.c
cd ..
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=atmega16a -o main_lcd.elf ./LCD/main.o ./LCD/lcd.o
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex main_lcd.elf main_lcd.hex
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main_lcd.elf main_lcd.eep
- name: build-spi-firmware
run: |
mkdir SPI
cd SPI
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/spi/main.c
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/spi/spi.c
cd ..
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=atmega16a -o main_spi.elf ./SPI/main.o ./SPI/spi.o
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex main_spi.elf main_spi.hex
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main_spi.elf main_spi.eep
- name: build-twi-firmware
run: |
mkdir TWI
cd TWI
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/twi/main.c
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/twi/twi.c
cd ..
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=atmega16a -o main_twi.elf ./TWI/main.o ./TWI/twi.o
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex main_twi.elf main_twi.hex
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main_twi.elf main_twi.eep
- name: build-uart-firmware
run: |
mkdir UART
cd UART
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/uart/main.c
../avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=atmega16a -std=gnu99 -c ../library/uart/uart.c
cd ..
./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=atmega16a -o main_uart.elf ./UART/main.o ./UART/uart.o
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data -O ihex main_uart.elf main_uart.hex
./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex main_uart.elf main_uart.eep
- name: upload-library-firmware
uses: actions/upload-artifact@v4
with:
name: library-firmware
path: |
main_adc.hex
main_adc.eep
main_lcd.hex
main_lcd.eep
main_spi.hex
main_spi.eep
main_twi.hex
main_twi.eep
main_uart.hex
main_uart.eep
retention-days: 5