@@ -112,41 +112,30 @@ jobs:
112112 mkdir -p temp
113113 rm -rf ./temp/*
114114
115- build_with_defines() {
116- local defines="$1"
117- local libraries=""
115+ libraries=""
118116
119- while read -r file; do
120- local filename=$(basename -- "$file")
117+ while read -r file; do
118+ filename=$(basename -- "$file")
121119 filename="${filename%.*}"
122120
123- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
124- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
125- $defines \
126- -I ./DFP/include -c "${file}" -o "./temp/${filename}.o"
121+ echo "Compiling: ${filename}.c from ${file}"
122+
123+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"./DFP/include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}" -c -std=gnu99 -MD -MP -MF "./temp/${filename}.d" -MT"./temp/${filename}.d" -MT"./temp/${filename}.o" -o "./temp/${filename}.o" "${file}" ${{ env.PREPROCESSOR }}
127124
128125 libraries+="./temp/${filename}.o "
129- done < <(find "${{ env.LIBRARY_PATH }}" -type f -name '*.c')
130-
131- echo "$libraries"
132- }
133-
134- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
135- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
136- -I ./DFP/include \
137- ${{ env.PREPROCESSOR }} \
138- -c ${{ env.PROJECT_PATH }}/main.c -o ./main.o
139- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} \
140- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
141- -I ./DFP/include \
142- -o ./main.elf ./main.o \
143- ${{ env.PREPROCESSOR }} \
144- $(build_with_defines "${{ env.PREPROCESSOR }}")
145-
146- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data \
147- -O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex
148- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 \
149- -O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep
126+ done < <(find "${LIBRARY_PATH}" -type f -name '*.c')
127+
128+ echo "Libraries: $libraries"
129+
130+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"./DFP/include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}" -c -std=gnu99 -MD -MP -MF "./temp/main.d" -MT"./temp/main.d" -MT"./temp/main.o" -o "./temp/main.o" "./${{ env.PROJECT_PATH }}/main.c" ${{ env.PREPROCESSOR }}
131+
132+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -o "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" ${libraries} ./temp/main.o -Wl,-Map="${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}"
133+
134+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex"
135+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep" || exit 0
136+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objdump -h -S "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" > "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss"
137+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.srec"
138+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-size "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf"
150139
151140 tar -czvf build.tar.gz ${{ env.OUTPUT_FOLDER }}
152141 zip -r build.zip ${{ env.OUTPUT_FOLDER }}
@@ -191,44 +180,33 @@ jobs:
191180 mkdir -p temp
192181 rm -rf ./temp/*
193182
194- build_with_defines() {
195- local defines="$1"
196- local libraries=""
183+ libraries=""
197184
198- while read -r file; do
199- local filename=$(basename -- "$file")
185+ while read -r file; do
186+ filename=$(basename -- "$file")
200187 filename="${filename%.*}"
201188
202- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
203- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
204- $defines \
205- -I ./DFP/include -c "${file}" -o "./temp/${filename}.o"
189+ echo "Compiling: ${filename}.c from ${file}"
190+
191+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"./DFP/include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}" -c -std=gnu99 -MD -MP -MF "./temp/${filename}.d" -MT"./temp/${filename}.d" -MT"./temp/${filename}.o" -o "./temp/${filename}.o" "${file}" ${{ env.PREPROCESSOR }}
206192
207193 libraries+="./temp/${filename}.o "
208- done < <(find "${{ env.LIBRARY_PATH }}" -type f -name '*.c')
209-
210- echo "$libraries"
211- }
212-
213- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -x c -O1 -mmcu=${{ env.DEVICE }} -std=gnu99 \
214- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
215- -I ./DFP/include \
216- ${{ env.PREPROCESSOR }} \
217- -c ${{ env.PROJECT_PATH }}/main.c -o ./main.o
218- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -g -mmcu=${{ env.DEVICE }} \
219- -B ./DFP/gcc/dev/${{ env.DEVICE }} \
220- -I ./DFP/include \
221- -o ./main.elf ./main.o \
222- ${{ env.PREPROCESSOR }} \
223- $(build_with_defines "${{ env.PREPROCESSOR }}")
224-
225- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .text -j .data \
226- -O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex
227- ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --change-section-lma .eeprom=0 \
228- -O ihex ./main.elf ${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep
229-
230- tar -czvf test-build.tar.gz ${{ env.OUTPUT_FOLDER }}
231- zip -r test-build.zip ${{ env.OUTPUT_FOLDER }}
194+ done < <(find "${LIBRARY_PATH}" -type f -name '*.c')
195+
196+ echo "Libraries: $libraries"
197+
198+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"./DFP/include" -Og -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}" -c -std=gnu99 -MD -MP -MF "./temp/main.d" -MT"./temp/main.d" -MT"./temp/main.o" -o "./temp/main.o" "./${{ env.PROJECT_PATH }}/main.c" ${{ env.PREPROCESSOR }}
199+
200+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-gcc -o "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" ${libraries} ./temp/main.o -Wl,-Map="${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=${{ env.DEVICE }} -B "./DFP/gcc/dev/${{ env.DEVICE }}"
201+
202+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.hex"
203+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.eep" || exit 0
204+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objdump -h -S "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" > "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.lss"
205+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf" "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.srec"
206+ ./avr8-gnu-toolchain-linux_x86_64/bin/avr-size "${{ env.OUTPUT_FOLDER }}/${{ env.FIRMWARE_NAME }}.elf"
207+
208+ tar -czvf build.tar.gz ${{ env.OUTPUT_FOLDER }}
209+ zip -r build.zip ${{ env.OUTPUT_FOLDER }}
232210
233211 - name : upload-test-firmware
234212 uses : actions/upload-artifact@v4
0 commit comments