- 12V Akku mit 280 Ah bauen         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 46

Thema: Asuro bootloader

  1. #21
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.12.2004
    Beiträge
    485
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von m.a.r.v.i.n
    Die CRC-16 im Asuro Flasher ist jedenfalls keine CCITT CRC 16. Damit ist auch der Algorithmus zur Berechnung nicht bekannt.

    Gruß Peter
    Na ja die müßte man aber wirklich leicht im Linux Source abschauen können.
    Obwohl es eigentlich auch egal ist wie es jetzt berechnet wird,
    wenn man einen eigenen Bootloader baut, muß man ohnehin "beide Seiten des Programmierkabels" bedienen.

    LG
    Rubi

  2. #22
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    @Rubi
    das steht eben nicht im Linux-source, denn da ist ja die Tabelle, von der man (noch) nicht weiss wie sie generiert wurde.

    Ich hatte mir schon vor einiger Zeit die Arbeit gemacht, und alle Werte ins Excel eingegeben, und ein Diagramm draus gemacht, ob sich da optisch was abzeichnet, evtl. fällt jemanden was dazu ein:

    [edit]Diagramm gelöscht

  3. #23
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    hier sind ein paar Code Schnipsel für die Berechnung einer CCITT CRC 16 Checksumme. In C mit Tabelle und Assembler für den AVR.

    Man könnte die CRC Tabelle aus dem ASURO Flasher austauschen, und die CRC Berechnung in den Asuro Bootloader einbauen.

    Gruß Peter

    Edit: Die im ASURO Flasher verwendete CRC ist eine XMODEM CRC-16 Checksumme. Habe gerade mal die Tabellen verglichen.
    Hier gibt es auch AVR Beispielcode:
    http://www.atmel.com/dyn/resources/p...nts/AVR350.zip
    Angehängte Dateien Angehängte Dateien

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    hätte man auch gleich haben können:
    Zitat Zitat von von Google
    Die Speicherung der Tabelle benötigt 512 Bytes.
    Sollte es für eine Speicherung dieser Tabelle zu voll sein, so kann man sie wie folgt zur Laufzeit aufbauen:
    Code:
    unsigned char Table[256];
    const int Rest[8] = { 0xC0C1, 0xC181, 0xC301, 0xC601, 0xCC01, 0xD801, 0xF001, 0xA001 };
    main() {
            int i, j;
            unsigned short value;
    
            for (i = 0; i < 256; i++) {
                    value = 0;
                    for (j = 0; j < 8; j++)
                            if (i & (1 << j))
                                    value ^= Rest[j];
                    Table[i] = value;
            }
    }
    dann brauchts erstmal nur 16Byte

  5. #25
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    ich bins wieder, \/
    jetzt hab ich mal in C was zusammengebraten, zum testen auf einem RN-M8, im moment ist es ein normales Programm, noch kein Bootloader, aber man kann schon mit dem orig. Flashtool die Daten rüberschicken, und der M8 checkt den CRC und meldet obs gepasst hat, usw.
    Was noch nicht geht, die Daten in den Speicher schreiben.
    Das dürfte aber nimmer so schlimm sein, der rest ist schon vorbereitet.
    Bis jetzt hat es 982 Bytes, ohne das irgendwas optimiert wäre.

    PS:
    Obwohl ich im moment die Daten per Kabel versende, bekomme ich öfter CRC-fehler, das liegt wohl daran, das manchmal am Seitenbeginn ein Byte verschluckt wird, das der Asuro noch nicht mitbekommt. Sonst sieht es von der Übertragung genauso aus wie mit IR, da gehts bei mir auch nicht ganz ohne CRC-fehler.

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.12.2004
    Beiträge
    485
    Hallo Linux-80

    Bin schon gespannt!
    Habe meinen Bootloader versehentlich überschrieben und würde meinen
    Asuro gerne wieder mal über IR programmieren.

    LG
    Michael

  7. #27
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo linux_80,

    klasse, das ging ja wirklich fix.
    Habe mich mal inzwischen mal mit der avr-libc beschäftigt.
    Dort findet sich eine Menge an Funktionen für Bootloader Support,
    Flashen und CRC Berechnung. Alles bestens dokumentiert und in Assembler geschrieben.
    http://savannah.nongnu.org/projects/avr-libc/

    Gruß Peter

  8. #28
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    \/ Hallo an alle Asurobesitzer und ersteller, \/

    hatte die letzten Tage nicht soviel Zeit, aber heute hab ich wieder frei

    so schauts aus:
    getestet auf einem RN-Mega8 Board, mit dem orig. FlashTool vom Asuro
    Das heisst, die Übertragung geht hier per Kabel, aber es geht,
    CRC-fehler nur einmal am Anfang der 1. Seite,
    Flash wird schon richtig geflasht,
    es wird nicht nach dem Batteriefüllstand gecheckt (VL Meldung),
    es wird auch noch nicht überprüft, ob die Daten dann richtig drin stehen, (zB. Flash schon zu oft geflasht),
    Ich hab das bis jetzt danach immer mit Pony ausgelesen, und es stand immer alles da wo es hin sollte
    Hab alles in Assembler gemacht, bzw. erst mit C, dann was da rauskam nachgearbeitet, und die Routinen zum Flashen direkt in asm reingebaut,
    im moment braucht er 832 Byte,


    so wenn man dann einen gewöhlichen, dann modifizierten, M8 in den Asuro steckt schauts so aus,
    Daten werden schön per IR hin- und hergeschickt, aber ich bekomme immer nur CRC-fehler, schaffe es also nicht etwas zu Flashen !
    (sehe schon das grinsen von Archi und Kollegen )

    Ich hab hier mehrere dieser IR-Adapter, kann deshalb auch mitverfolgen was so alles IR-mässig rumgesendet wird, hier sehe ich das der PC nicht immer alle Zeichen so mitbekommt wie sie der Asuro sendet , und bestimmt auch umgekehrt
    Das ist auch beim orig. Asuro-M8 so nur da gehts dann doch irgendwann.


    Dann hätte ich noch eine Frage, bevor ich hier das Programm reinstelle,
    wie können wir sicherstellen, wenn der Bootsektor mal auch auf dem Asuro klappt, das nicht ein findiger Mitbastler hier für €7,94 bei irgendwelchen Auktionshäusern solch fertige M8 loswerden will ?
    Darf ich den Bootsektor hier reinstellen ?

    Es bräuchte jetzt jemanden der die Sache mit der IR-kommunikation stabilisiert.

  9. #29
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo linux_80,

    vermute, der Asuro empfängt über die IR Schnittstelle seine eigenen gesendeten Zeichen.
    Nach dem Senden der Antwort sollte man auf alle Fälle den Empfangsbuffer leeren.

    Bin selbst leider zur Zeit zu sehr im Stress um mich mit dem Asuro zu beschäftigen.

    Gruß Peter

  10. #30
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    ich hab das schon so gemacht, das wenn der Asuro sendet ich vorher den Empfänger ausmache, und erst wieder einschalte wenn ich was empfangen will.
    Hilft aber nix.

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests