PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : fuses mit atcommand lesen und schreiben



Bumbum
05.03.2020, 13:01
Hallo,

ich versuche mich gerade mit dem Tool "atcommnd", welche z.B. beim AtmelStudio 7 mitgeliefert wird. Ich habe es schon geschafft einen chiperease durchzuführen und den Flash zu programmieren. Ich habe aber Probleme dabei die Fuse-Bytes zu schreiben. Auch Lese-Versuche sind gescheitert.

Folgendes führt zum Fehler "[ERROR] bad allocation. (TCF Error code: 1)":

atprogram.exe" -t atmelice -i swd -d atsamc21j18a -cl 2mhz read -fs -f "c:\fuses.hex"

Und wie der Befehl zum Schreiben aussehen müsste habe ich überhaupt keine Idee. Wer kann helfen?

Viele Grüße
Andreas

wkrug
05.03.2020, 18:14
Ich hab mit dem Tool noch nicht gearbeitet, aber es gibt ein AN dazu:
http://ww1.microchip.com/downloads/en/AppNotes/00002466A.pdf

Bumbum
06.03.2020, 07:03
Hallo wkrug,

vielen Dank. Diese AN hatte ich bereits. Sie hat mir geholfen den Flash zu schreiben. Meine Ansätze die Fuses zu lesen und zu schreiben sind auch aus dieser AN. Leider ist diese Funktion aber auch dort eher schlecht und quasi ohne Beispiele erklärt. Es funktioniert deshalb noch nicht.

Viele Grüße
Andreas

- - - Aktualisiert - - -

Hallo noch mal,

ich habe die Lösung gefunden. Man muss dem atprogram noch mittels des Parameter -o xxx angeben, wo sich die Fuses befinden und mit dem Parameter -s xxx wie groß diese sind. Als Beispiel bei meinem Controller: USER_WORD_0 (4 Bytes) liegt an Addresse 0x804000. Der Befehl zum lesen:

atprogram.exe -t atmelice -i swd -d atsamc21j18a -cl 2mhz read -fs -o 8404992 -s 4

Vorsicht: Die Adresse muss in Dezimal angegeben werden!



Geschrieben werden kann dann wie folgt:

atprogram.exe" -t atmelice -i swd -d atsamc21j18a -cl 2mhz write -fs -o 8404992 --values *F888D0B1

Vorsicht: Die Adresse muss in Dezimal, die values dann aber in Hex angegeben werden.

Viele Grüße
Andreas

wkrug
06.03.2020, 08:05
Ok - Das ist schon etwas kompliziert.
Ich frag mich aber, warum Du das nicht gleich mit dem .elf File direkt alles einspielst.
Dort werden dann alle Memories und soweit Ich weiß auch die Fuses gleich mit gesetzt.

Bumbum
06.03.2020, 09:08
Hallo wkrug,

das mit dem efl-File war auch mein erster Plan. Aber in meinem AVR-Studio fehlt dazu die Option (muss es wohl mal neu installieren oder reparieren) und ich möchte zwei Projekte (Bootloader und App) zusammenfügen und entsprechend auf einen Schlag flashen. Das läuft jetzt.

Viele Grüße
Andreas