Frage zu Prüsumme und zum Flash lesen

Gast #462599
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
Gast #463463
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.
Gast #463482
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)
Gast #464405
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

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