Makefile für EDL-C-Firmware?

Alles rund um die Software der elektronischen digitalen Last
Antworten
Ernesto
Beiträge: 2
Registriert: 29.08.2015, 23:24

Makefile für EDL-C-Firmware?

Beitrag von Ernesto » 07.08.2016, 21:27

Hallo,

da meine Bauteile für das EDL unterwegs sind, wollte ich, wie auch schon für's DIV, die C-Firmware benutzen. Leider ist bei der originalen EDL2 kein Makefile dabei und weder das aus EDL noch das, was bei mir prima mit DIV funktioniert, konnte ich verwenden. Letzteres bringt den seltsamen Fehler:

Code: Alles auswählen

edl.c:883:1: error: unable to find a register to spill in class ‘POINTER_REGS’
Hat evtl. jemand ein nutzbares Makefile? Ich benutze avr-gcc Version 4.8.2 unter Ubuntu 14.04.

Dankeschön schonmal -- und auch ein großer Dank an die Schöpfer der C-Firmware!

Viele Grüße!

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

Re: Makefile für EDL-C-Firmware?

Beitrag von psclab38 » 08.08.2016, 12:28

Die Fehlermeldung hat weniger mit einem Makefile zu tun als mit einem verwirrten Compiler. Ich habe versucht, den Code so zu gestalten, dass der Compiler durchläuft, aber verschiedene Versionen haben da unterschiedliche Schmerzschwellen.

Ich kann in den nächsten Tagen mal nachsehen, mit welchen Compiler-Versionen der Code compiliert. Vielleicht versuchst Du einfach mal solange eine andere Version.

PS: Hab grade im EDL2-Changelog nachgesehen: Die Versionen 4.7.2 und 4.8.1 sollten funktionieren, für die beiden habe ich einen Patch eingebaut. Sieht aber so aus, dass der bei der 4.8.2 schon wieder nicht funktioniert.

Ernesto
Beiträge: 2
Registriert: 29.08.2015, 23:24

Re: Makefile für EDL-C-Firmware?

Beitrag von Ernesto » 08.08.2016, 16:38

OK, dankeschön. Dass es auch verwirrte Compiler geben kann ... ;-)
Diese avr-gcc-Version ist die bei Ubuntu 14.04.x benutzte.

Wenn es keinen anderen Weg gibt, würde ich versuchen, die 4.8.1 zu installieren -- ich vermute nur, dass es dann wieder Abhängkeitsprobleme zu anderen Paketen/Bibliotheken gibt, oder?

Ubuntu 16.04 bringt wohl avr-gcc in der Version 4.9.2 -- hätte es Sinn, es damit zu versuchen? Ich will ohnehin demnächst "aufkohlen" ...


Da die Bauteile noch unterwegs sind und ich auch ein bissel, habe ich noch keine Eile ...

Viele Grüße!

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

Re: Makefile für EDL-C-Firmware?

Beitrag von psclab38 » 08.08.2016, 16:50

Das Hexfile liegt ja auch bei SourceForge. Du musst es ja vorerst nicht selbst erzeugen.

Die Sache mit dem Compiler schaue ich mir in den nächsten Tagen mal an. Die uralten Compiler hatten mit dem Code gar kein Problem, nur ab 4.7.2 ging's los.

EDIT:
So, das hat mich jetzt doch interessiert. Ja, mit dem avr-gcc 4.9.2 compiliert der Code komplett, sogar meine für 4.7.2 und 4.8.1 gemachten Änderungen kann ich prinzipiell wieder komplett rückgängig machen. Eigentlich gibt's für den avr-gcc seit zwei Jahren einen Patch für den besagten Fehler, der ist aber wohl erst dieses Jahr eingespielt worden.

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

Re: Makefile für EDL-C-Firmware?

Beitrag von psclab38 » 15.08.2016, 12:03

Ich habe die EDL2-Firmware etwas erweitert und auch das On/Off-Menü eingebaut, das kürzlich in der DCG2-Version dazugekommen ist. Und in der DCG2-Firmware ist das Tracking für ein zweites DCG erweitert, so dass die On/Off-Funktion gleichzeitig auch das zweite DCG "fernsteuert".

Wer selbst compilieren möchte, sollte den avr-gcc in der Version 4.9.2 verwenden. Möglicherweise können auch alte Versionen vor 4.7.2 funktionieren, aber die erzeugen nicht so kompakten Code. Das könnte dann vom Speicherplatz möglicherweise eng werden.

Antworten