Seite 1 von 1

DIV-C selbst kompilieren

Verfasst: 13.05.2021, 15:56
von lab-freund
Hallo,

gerne würde ich die DIV-C-Firmware selbst kompilieren.
Muss es die von psclab38 einmal genannte Version 20080610 sein, oder geht auch die 20100110?

Quelle:
https://sourceforge.net/projects/winavr/files/WinAVR/

Oder sind andere Umgebungen sinnvoller für diesen Zweck?

Re: DIV-C selbst kompilieren

Verfasst: 14.05.2021, 07:59
von psclab38
Hi,

nein, es sollten auch modernere Compiler funktionieren. Ich verwende immer den aktuellen aus dem Atmel Studio, den kann man auch einzeln runterladen, glaube ich. Der Sourcecode ist jedenfalls dafür angepasst, letzte Codeänderung war 2015.

Mit den ganz alten Compilern kann es Probleme geben, wenn das Flash schon knapp ist. Da optimieren die neuen Compiler deutlich besser.

Details müßte ich am WE mal nachsehen.

Gruß,
Paul

Re: DIV-C selbst kompilieren

Verfasst: 17.05.2021, 21:48
von psclab38
Hallo,

ich habe für die DIV-Implementierung mal drei aktuellere Compiler ausprobiert.

avr-gcc 4.92 (Atmel/Microchip Version 3.5.3.1700): Codesize 22202 Bytes
avr-gcc 5.40 (Atmel/Microchip Version 3.6.2.1759): Codesize 22142 Bytes
avr-gcc 11.1.0 (https://blog.zakkemble.net/avr-gcc-builds/): Codesize 22718 Bytes

Alle drei laufen ohne Fehlermeldungen durch, ich habe aber das Resultat jetzt nicht getestet.

Ohne Gewähr hier ein Compileraufruf All-in-One:

Code: Alles auswählen

f:\avr-gcc-11.1.0\bin\avr-gcc.exe -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=16000000UL -DUART_2X -DUART_BAUDRATE=38400 -I f:\avr-gcc-11.1.0\avr\include\ -Os -mcall-prologues -funsigned-char -funsigned-bitfields -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -fno-inline-small-functions -fno-split-wide-types -fno-tree-scev-cprop -ffreestanding -Wall -Wextra -Werror -Wstrict-prototypes -Wa,-adhlns=uart.lst  -std=gnu99 -Wl,--relax,--gc-sections,-Map=dds.map,--cref,-u,vfprintf -MD -MP div-hw.c div-parser.c encoder.c i2c.c i2creg.c lcd.c main.c panel.c parser.c timer.c uart.c div-hw-asm.S --output div.elf -lprintf_flt -lm 

f:\avr-gcc-11.1.0\bin\avr-objcopy -O ihex -R .eeprom div.elf DIV_allinone2021.hex

f:\avr-gcc-11.1.0\bin\avr-size div.elf
Würde mich freuen, wenn es Dir hilft.

Gruß
Paul