WinAVR 2010 / AVR-GCC und Atmega48PA

Gast #4215399
Lesenswert?

Folgendes Problem mit einem ATmega48PA:
1
> make
2

3
-------- begin --------
4
avr-gcc (WinAVR 20100110) 4.3.3
5
Copyright (C) 2008 Free Software Foundation, Inc.
6
This is free software; see the source for copying conditions.  There is NO
7
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8

9

10
Compiling C: main.c
11
avr-gcc -c -mmcu=atmega48pa -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-
12
adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
13
unknown MCU 'atmega48pa' specified
14
Known MCU names:
15
...
16
   atmega48
17
   atmega48a
18
   atmega48p
19
 ...

Nehm' ich A oder P oder bekomme ich irgendwo beides?
#4217997
Lesenswert?

Jörg W. schrieb:
> Der 5 Jahre alte optimiert nicht nur (teils drastisch) schlechter als
> ein aktueller, du verlierst auch eine Reihe anderer netter Dinge wie
> beispielsweise __flash als separaten Adressraum.

da ich immer noch gerne mit AVR Studio 4.18 SR3 arbeite war der 2010er 
doch die letzte Version WinAVR-20100110 die mit eingebunden wurde.

AVR Studio    4.18.692
Service Pack 3
Plugins:
AvrPluginavrgccplugin  1, 0, 0, 11
#4218030
Lesenswert?

Jörg W. schrieb:
> Und, wer hindert dich, da manuell eine andere Toolchain drunter zu
> setzen?

meine Kenntnisse?

jetzt weiss ich das es läuft, ich bin immer vorsichtig mit derlei 
Experimente, sie sind auch sehr zeitaufwändig aber heute evtl. nicht 
unmöglich.

Ich hätte ja die Hoffnung ein echtes Plattenbackup zu fahren die neue 
Toolchain zu installieren und zu probieren, aber 2 Risiken, erstens wenn 
mir die Zeit fehlt vollständig zu testen, bis ich Fehler bemerke oder 
was nicht oder schlechter läuft ist der Backupzeitpunkt in die 
Vergangenheit gerutscht, doof bei Restore und wer sagt mir denn das 
Restore wirklich funktioniert, aus meiner Industriezeit weiss ich das 
ein fehlerfreies Backup nicht unbedingt ein fehlerfreises Restore 
bedeutet. Da haben wir früher schon mal Pech gehabt.
Gast #4218035
Lesenswert?

Joachim B. schrieb:
> Ich hätte ja die Hoffnung ein echtes Plattenbackup zu fahren die neue
> Toolchain zu installieren und zu probieren, aber 2 Risiken, erstens wenn
> mir die Zeit fehlt vollständig zu testen, bis ich Fehler bemerke oder
> was nicht oder schlechter läuft ist der Backupzeitpunkt in die
> Vergangenheit gerutscht, doof bei Restore und wer sagt mir denn das
> Restore wirklich funktioniert, aus meiner Industriezeit weiss ich das
> ein fehlerfreies Backup nicht unbedingt ein fehlerfreises Restore
> bedeutet. Da haben wir früher schon mal Pech gehabt.

Darum installiere ich mir die Toolchains in unterschiedliche 
Verzeichnisse und arbeite mit einen Makefile. Ich lege für jedes Projekt 
fest, welchen Toolchain ich verwende und kann jederzeit wird zurück wenn 
etwas merkwürdig ist.
Moderator Persönliche Seite #4218175
Lesenswert?

Joachim B. schrieb:
> jetzt weiss ich das es läuft, ich bin immer vorsichtig mit derlei
> Experimente, sie sind auch sehr zeitaufwändig aber heute evtl. nicht
> unmöglich.

Die Toolchain ist einigermaßen isoliert in nur wenigen Verzeichnissen
(oder gar nur in einem) untergebracht.  Es genügt also völlig, dieses
erstmal „zur Seite umzubenennen“, danach dann eine neue Toolchain an
die gleiche Stelle zu schaufeln.  Dann ausprobieren, wenn's geht, ist
alles gut, wenn nicht, ist mit ein paar Handstrichen der vorherige
Zustand wieder hergestellt – ganz ohne (aufwändiges) Komplett-Backup.
#4218184
Lesenswert?

Jörg W. schrieb:
> Es genügt also völlig, dieses
> erstmal „zur Seite umzubenennen“, danach dann eine neue Toolchain an
> die gleiche Stelle zu schaufeln.

hört sich gut an, nur hatte ich mir damals einen abgebrochen weil es bei 
der Installation auf die richtige Reihenfolge ankam und es nicht auf 
Anhieb auf 5 Rechner gleich laufen wollte.
Vielleicht passten die Versionsnummern auch nicht zueinander oder ich 
bin zu unerfahren, halte mich ja nur für einen Hobbyprogrammierer der 
nur so viel progammiert wie er für seine Anwendungen unbedingt braucht.
Moderator Persönliche Seite #4220465
Lesenswert?

Man kann in AVR-Studio 4.18 auch eine neuere Toolchain einbinden, die in 
einem abweichenden Pfad installiert ist.

Der Trick ist ganz einfach:

AVR-Studio sucht die Toolchain immer in dem Pfad, welcher in dem 
Registry-Key
1
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinAVR]

eingetragen ist.

Für den avr-gcc 4.7.2, den ich am liebsten verwende, habe ich mir eine 
.reg-Datei gemacht:
1
Windows Registry Editor Version 5.00
2

3
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinAVR]
4
"DisplayVersion"="20100110"
5
"UninstallString"="C:\\WinAVR\\avr-gcc-4.7.2\\WinAVR-20100110-uninstall.exe"

Ausschlaggebend ist der Pfad, also C:\WinAVR\avr-gcc-4.7.2. Die 
EXE-Datei WinAVR-20100110-uninstall.exe muss überhaupt nicht in diesem 
Verzeichnis liegen, ist hier also nur technisches Beiwerk.

Möchte man wieder zurückschalten auf die avr-gcc.4.3.3-Version aus dem 
Jahre 2010, kann diese reg-Datei verwendet werden:
1
Windows Registry Editor Version 5.00
2

3
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinAVR]
4
"DisplayVersion"="20100110"
5
"UninstallString"="C:\\WinAVR\\avr-gcc-4.3.3\\WinAVR-20100110-uninstall.exe"

(Der Pfad muss eventuell angepasst werden)

Ich sehe aber keinen Grund, wieder zurück auf den alten Compiler zu 
gehen. Der 4.7.2 tuts prima und erzeugt auch schmaleren Code.

Ich habe hier auch noch reg-Dateien für avr-gcc-4.8.1. Dieser hat aber 
die Macke, dass er bei ISRs eine überflüssige (weil falsche) Warnung 
rausgibt und mich daher nervt, und auch eine avr-gcc-4.9.2, die noch 
Beta ist.

Das Hin- und Herschalten mittels reg-Datei funktioniert in AVR-Studio 
4.18 tadellos. Einmal Doppelklick und fertig.
#4220663
Lesenswert?

Frank M. schrieb:
> Der Trick ist ganz einfach:
>
> AVR-Studio sucht die Toolchain immer in dem Pfad, welcher in dem
> Registry-Key

vielen Dank das hilft mir sehr bei meinem Projekt Antennenmessgerät 
unter verschiedenen Rechnern.

Kennst du dich etwas mit dem reg Editor aus?

Meine Tools für Messgerät und die Reg laufen zwar, aber ich habe noch 
Probleme die Com im Schlüssel zu verändern.

Ein REG Key im Texteditor wird normal gezeigt, aber im HEX Editor sehe 
ich statt ASCII immer 16-bit Werte, ein ASCII Zeichen und 00 aber nicht 
für die ersten beiden Zeichen.

Das macht es nicht leichter die REG Datei zu parsen um die Com, Baud, 
Stoppbits anzupassen.

warum zur Hölle exportiert Regedit 16-bittig und will es genauso wieder 
importieren?
#4220689
Lesenswert?

Frank M. schrieb:
> Sorry, leider nicht, kann Dir hier nicht helfen.

glaub ich dir nicht, aber egal.

Es ist ja nun nicht so schwer die gesicherte REG Datei zu öffnen und ab 
dem 2-ten Zeichen alle 00 rauszuwerfen und nur den ASCI Text in ein char 
Array zu speichern, dort zu parsen nach Schlüsselwörter die benötigten 
Inhalte zu ändern und dann wieder 16-bittig mit 00 zurückzuschreiben, 
oder jede 00 zu ignorieren.

Es gibt wie immer x Wege nach RAM äh Rom.

Ich dachte nur weil du eben vom REG Editor schriebst du kennst das 
Verhalten und warum.
Moderator Persönliche Seite #4220692
Lesenswert?

Walter T. schrieb:
> Frank M. schrieb:
>> Für den avr-gcc 4.7.2, den ich am liebsten verwende
>
> Hast Du zufällig parat, in welcher Installations-Version der drin ist?

Ich habe ihn von hier:

http://sourceforge.net/projects/mobilechessboar/files/avr-gcc%20snapshots%20%28Win32%29/

Am besten installierst Du ihn in einem Verzeichnis ohne Leerzeichen, 
z.B. C:\WinAVR.
Moderator Persönliche Seite #4220694
Lesenswert?

Joachim B. schrieb:
> Frank M. schrieb:
>> Sorry, leider nicht, kann Dir hier nicht helfen.
>
> glaub ich dir nicht, aber egal.

Wie bitte?

Ich weiß gerade mal, wie man so einen Key in einer REG-Datei speichert. 
Da ich das 16-Bit-Problem noch nicht hatte, habe ich mich bisher auch 
nicht näher damit beschäftigt.

> Ich dachte nur weil du eben vom REG Editor schriebst du kennst das
> Verhalten und warum.

Sorry, nein.
#4220767
Lesenswert?

Frank M. schrieb:
> Wie bitte?
>
> Ich weiß gerade mal, wie man so einen Key in einer REG-Datei speichert.
> Da ich das 16-Bit-Problem noch nicht hatte, habe ich mich bisher auch
> nicht näher damit beschäftigt.

na das ist doch eine völlig andere Aussage als

Frank M. schrieb:
> Sorry, leider nicht, kann Dir hier nicht helfen.

ich weiss ja wie es geht, exportiere den gewünschten KEY mit cmd, bzw. 
"system command regedit /e" oder /s blablub in Datei
Öffne diese, editiere und sichere

Danach gehts mit syscommand regedit import wieder rein.

Joachim B. schrieb:
> Es ist ja nun nicht so schwer die gesicherte REG Datei zu öffnen und ab
> dem 2-ten Zeichen alle 00 rauszuwerfen und nur den ASCI Text in ein char
> Array zu speichern, dort zu parsen nach Schlüsselwörter die benötigten
> Inhalte zu ändern und dann wieder 16-bittig mit 00 zurückzuschreiben,
> oder jede 00 zu ignorieren.

Ich bin sicher so wie du programmieren kannst könntest du das auch und 
eleganter als ich.
Moderator Persönliche Seite #4220787
Lesenswert?

Joachim B. schrieb:
> Ich bin sicher so wie du programmieren kannst könntest du das auch und
> eleganter als ich.

Hm, dafür würde ich ein C-Programm schreiben:
1
#include <stdio.h>
2

3
int main ()
4
{
5
    int ch;
6

7
    while ((ch = getchar()) != EOF)
8
    {
9
        if (ch)
10
        {
11
            putchar (ch);
12
        }
13
    }
14
    return 0;
15
}

Übersetzen und dann: programmname <original.reg >neu.reg

Aber das heisst trotzdem nicht, dass ich ein Experte des 
Registry-Editors wäre ;-)
#4220805
Lesenswert?

Frank M. schrieb:
> Hm, dafür würde ich ein C-Programm schreiben:

so ähnlich habe ich es ja schon, bzw bin gerade dabei das drum rum zu 
schreiben,

schauen ob der KEY AMA_KWS in der REG ist, exportieren wenn nicht KEY 
erzeugen.
Com feststellen, alle durchtackern die open gehen, die OPEN mit 
Teststring beschicken, Antwort einlesen, wenn OK KWS_AMA = TRUE, Com 
angepasst in die REG eintragen.

Erst danach startet mein TV Kanal Messprogramm über alle belegten Kanäle 
analog und digital zur Schieflageermittlung.

Doof halt nur das ich alle Änderungen in der Kanalbelegung händisch in 
eine Tabelle eintragen muss aus der ich lese, gerne hätte ich den Import 
der Tabelle aus der KD Helpdeskwebseite.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren