Forum: Compiler & IDEs Frage zu Prüsumme und zum Flash lesen


von Martin (Gast)


Lesenswert?

Hallo an alle

Beim schreiben eines Bootloaders hab ich nun 2 Fragen. Ich sende die 
Pages vom PC zum Avr. Hier ist eine Prüfsumme sicher sehr sinnvoll. Nur 
die Pages haben eine Größe bis zu 256 Bytes.

Welche Methoden sind den hier sinnvoll?? (einefache Prüfsumme aus den 
Modulo 255 Werten der Bytes oder doch eine höherer Methode??)

So nun die 2. Frage: Beim Bootloader möchte ich auch die Möglichkeit 
haben den Avr auszulesen. Nur wie lese ich den ganzen Flash Speicher aus 
der Boot Sektion aus??

Danke im Voraus

Gruß Martin

von Martin (Gast)


Lesenswert?

Hab noch eine Frage,

Jeder Avr Typ hat doch sichher eine eigene Device ID. Wie kann ich die 
aus dem AVR auslesen?

Danke im Voraus

Gruß Martin

von Ronny (Gast)


Lesenswert?

Also ein 16-Bit-Wert,der lediglich nur alle aufaddierten Bytes 
beinhaltet,funktioniert schon recht zuverlässig.Sollten die Daten bei 
der Übertragung gestört werden (1-Bit und Mehrbit-Fehler),ist die 
Wahrscheinlichkeit sehr hoch,das du damit ungültige Daten 
erkennst.Allerdings bieten CRC&Co eine bessere Fehlererkennungsrate.

Zur ID:

In der Application-Note AVR910 von Atmel (doc0943.pdf) wird u.a. das 
Auslesen des Devicecode beschrieben.Einfach mal danach googlen.

von Martin (Gast)


Lesenswert?

Hi Ronny

Danke für die Tipps. Ich hab mir die App Note von Atmel mal angeschaut. 
Ist recht interessant. Das Problem bei mir ist aber, dass ich nicht mit 
ISP programmiere, sondern über USB (mit FT245) oder über RS232.

Kann ich da auch irgendwie zum Device Code kommen?

Gruß Martin

von Martin (Gast)


Lesenswert?

Auf 
http://www.roboter-teile.de/modules.php?name=Forums&file=viewtopic&p=355 
hab ich schon einige Device Codes gefunden :)
1
    Device code: 0x13 = AT90S1200
2
    Device code: 0x20 = ATtiny2313
3
    Device code: 0x28 = AT90S4414
4
    Device code: 0x30 = AT90S4433
5
    Device code: 0x34 = AT90S2333
6
    Device code: 0x38 = AT90S8515
7
    Device code: 0x48 = (unknown)
8
    Device code: 0x4c = AT90S2343
9
    Device code: 0x51 = (unknown)
10
    Device code: 0x55 = ATtiny12
11
    Device code: 0x56 = ATtiny15
12
    Device code: 0x68 = AT90S8535
13
    Device code: 0x6c = AT90S4434
14
    Device code: 0x86 = (unknown)
15
    Device code: 0x87 = (unknown)
16
    Device code: 0x23 = (unknown)
17
    Device code: 0x3a = ATMEGA8515
18
    Device code: 0x3b = (unknown)
19
    Device code: 0x41 = ATMEGA103
20
    Device code: 0x43 = ATMEGA128
21
    Device code: 0x44 = (unknown)
22
    Device code: 0x45 = (unknown)
23
    Device code: 0x46 = (unknown)
24
    Device code: 0x5e = ATTINY26
25
    Device code: 0x60 = ATMEGA161
26
    Device code: 0x61 = (unknown)
27
    Device code: 0x62 = (unknown)
28
    Device code: 0x63 = (unknown)
29
    Device code: 0x64 = ATMEGA163
30
    Device code: 0x66 = (unknown)
31
    Device code: 0x69 = (unknown)
32
    Device code: 0x6a = (unknown)
33
    Device code: 0x72 = ATMEGA32
34
    Device code: 0x73 = (unknown)
35
    Device code: 0x74 = ATMEGA16
36
    Device code: 0x75 = ATMEGA169
37
    Device code: 0x76 = ATMEGA8
38
    Device code: 0x77 = (unknown)
39
    Device code: 0x78 = (unknown)
40
    Device code: 0x79 = (unknown)
41
    Device code: 0x65 = (unknown)
42
    Device code: 0x67 = (unknown)
43
    Device code: 0x42 = (unknown)

von Martin (Gast)


Lesenswert?

So ich werde die CRC Prüfung nach dem gleichem Schema wie im IP 
Protokoll oder TCP Protokoll machen. Sprich: Addition der 
EInerkomplemente und dann aus der Summe wieder das Einerkomplement. Ich 
werde es aber auf 8 Bit BAsis machen.

Nun zum Problem beim Device ID auslesen. Ist das über den Bootlaoder 
möglich?

Gruß Martin

von Martin (Gast)


Lesenswert?

So ich hab nun wieder eine Tabelle mit Device Codes gefunden: 
http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf

Jedoch unterscheiden sich die mit den obrigen.

Wo finde ich zuverlässige Quellen. Die Device ID ist ja für jeden Avr 
Typ fix, oder??

von Martin (Gast)


Lesenswert?

Ich denke hierbaei handelt es sich nur um die Device Codes für das ST500 
Protkoll und hat nichts mit der Device ID des AVRs selbst zu tun, oder?

Ich möchte halt kontrolliern ob die Target MCU dem eingestellten 
Controller übereinstimmt...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.