(Dieser Beitrag wurde geloescht)
Schau mal hier rein: http://www.betarun.com/Pages/HexEditor/ http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=296140 Den Editor aus dem ersten Link habe ich selber noch nie verwendet, keine Ahnung, ob der für dich hilfreich ist. Möglicherweise sind die Hinweise aus dem Avrfreaks-Forum im zweiten Link sinnvoller. Ich verwende normalerweise CodevisionAVR, da ist es nicht notwendig, das EEPROM "zu Fuß" mit Daten zu füllen, man schreibt und liest einfach als "eeprom" deklarierte Variablen. Wo die Daten dann genau im EEPROM stehen, brauche ich dazu nicht zu wissen, das macht alles der Compiler. MfG, Andy
ist das dann nicht von kompilierung zu kompilierung unterschiedlich wo er seine daten hinschreibt?
--- recalc_ihex_checksum_pipe.pl
1 | #!/usr/bin/perl
|
2 | while (<>) |
3 | {
|
4 | s/[\r\n]//g; |
5 | my $data = substr($_, 1, -2); |
6 | my $checksum; |
7 | $checksum += hex($_) for split /(..)/, $data; |
8 | printf ":%s%02X\r\n", $data, (0x100-$checksum) & 0xff; |
9 | }
|
cat foo.eep | ./recalc_ihex_checksum_pipe.pl > bar.eep --- recalc_ihex_checksum.pl
1 | #!/usr/bin/perl
|
2 | |
3 | sub usage |
4 | {
|
5 | print "usage: $0 <infile> <outfile>\n"; |
6 | exit 1; |
7 | }
|
8 | |
9 | open IN, shift or &usage; |
10 | open OUT, ">" . shift or &usage; |
11 | |
12 | while (<IN>) |
13 | {
|
14 | s/[\r\n]//g; |
15 | my $data = substr($_, 1, -2); |
16 | my $checksum; |
17 | $checksum += hex($_) for split /(..)/, $data; |
18 | printf OUT ":%s%02X\r\n", $data, (0x100-$checksum) & 0xff; |
19 | }
|
./recalc_ihex_checksum.pl foo.eep bar.eep --- gruss, bjoern.
>ich bin zu lang raus aus Perl aber nach längerem Hinsehen hab ich die >Berechnung gefunden. Ich fass das mal als Kompliment auf :) Hier noch eine elegantere Variante...
1 | #!/usr/bin/perl
|
2 | while (<>) |
3 | {
|
4 | my $checksum; |
5 | s/^:(.+?)..[\r\n]+$/$1/; |
6 | $checksum -= hex($_) for split /(..)/; |
7 | printf ":%s%02X\r\n", $_, $checksum & 0xff; |
8 | }
|
...und ein Oneliner:
1 | cat foo.eep | perl -ne '$x=0;s/^:(.+?)..[\r\n]+$/$1/;$x-=hex($_)for split/(..)/;printf":%s%02X\r\n",$_,$x&0xff' > bar.eep |
gruss, bjoern.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.