DIV-C selbst kompilieren

Themen rund um die Software des Digitalvoltmeters DIV gehören hier rein.
Antworten
Benutzeravatar
lab-freund
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 102
Registriert: 23.01.2015, 20:27

DIV-C selbst kompilieren

Beitrag von lab-freund » 13.05.2021, 15:56

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?

psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 915
Registriert: 25.01.2008, 23:34

Re: DIV-C selbst kompilieren

Beitrag von psclab38 » 14.05.2021, 07:59

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

psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 915
Registriert: 25.01.2008, 23:34

Re: DIV-C selbst kompilieren

Beitrag von psclab38 » 17.05.2021, 21:48

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

Antworten