-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Asuro - Wie werden pages geflasht?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523

    Asuro - Wie werden pages geflasht?

    Anzeige

    Hallo,
    hab mal ne etwas ungewöhnliche Frage. Mich würde interessieren, wie die pages die über das Flash-Tool gesendet werden, in den Flash geschrieben werden.

    Aufgebaut werden sie so:
    Code:
    unsigned char m_RAM[MAX_PAGE][PAGE_SIZE - 3]; //-1PageNo -2CRC16 
    
    // Zeile aus Datei einlesen
    // ...
    
    sscanf(&line[1],"%02X",&recordLength);
    sscanf(&line[3],"%04X",&address);
    sscanf(&line[7],"%02X",&type);
    
    // Hex überprüfen ob checksum etc richtig ...
    
    // Daten in temp buffer
    for ( i = 0; i < recordLength; i++) {
        sscanf(&line[9 + i*2],"%02X",&data);
        cksum += data;
        tmp[i] = data;
    }
    
    // Daten in RAM buffer kopieren
    memcpy(&m_RAM[0][0]+address,&tmp[0],recordLength);
    
    
    ....
    
    // Daten in Sendbuffer kopieren
    sendData[0] = i; // PageNo.
    crc = 0;
    memcpy(&sendData[1],&m_RAM[i][0],PAGE_SIZE - 3);
    //Build CRC16
    for (j = 0; j < PAGE_SIZE - 2; j++) // -2 CRC16
        crc = CRC16(crc,sendData[j]);
    memcpy(&sendData[j],&crc,2);
    
    // Daten senden....
    Der Sendbuffer, der an den Asuro übertragen wird, sieht nun so aus:
    buffer[0] = Seitennummer

    buffer[1-64] = Daten aus hexfile

    buffer[65-66] = checksum, ob daten korrekt übertragen wurden


    Um in den flash zu schreiben, hab ich die Funktion void boot_program_page (uint32_t page,uint8_t*buf) dbenutzt.
    Bei der page, habe ich immer +64 dazugerechnet, da das ja die Größe einer Seite ist. Leider funktioniert es nicht.

    Kann mir das mal einer erklären???

    mfg

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Zitat Zitat von Wsk8 Beitrag anzeigen
    Bei der page, habe ich immer +64 dazugerechnet, da das ja die Größe einer Seite ist. Leider funktioniert es nicht.
    Hast du Mal versucht die Page einfach nur um +1 zu ändern? Ohne mir die Funktion angesehen zu haben gehe ich davon aus, dass hier die Page adressiert wird. Zumindest wird nur die Pagenummer selbst - und nicht die Adresse des ersten Bytes der Page - an den ASURO übertragen.

    Grüße,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    +1, +32 und +64. Kein Erfolg.

    mfg

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.167
    Hier gibt es ein Bootloader auf den Seite von Arexx-Henk:


    http://home.kpn.nl/h.van.winkoop/Asu...uBtlPagFrm.htm


    Leider ist es meistens Assembler-sprache. Aber vielleicht kannst du immer noch daraus holen was Wichtig ist.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Wsk8: Rufst du vorher andere Funktionen auf? Zwischen Bootloader und Flashtool läuft noch etwas mehr Kommunikation, zuerst musst du die Verbindung zum ASURO herstellen/diesen in den Flash-Modus bringen.

    Grüße,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    @Valen
    So viel ich gesehen habe, akzeptiert der Bootloader nur eine reine Hex. Hier wüsste ich auch wie ich sie schreibe, aber mir gehts ja um das Format des Asuros.

    Rufst du vorher andere Funktionen auf? Zwischen Bootloader und Flashtool läuft noch etwas mehr Kommunikation, zuerst musst du die Verbindung zum ASURO herstellen/diesen in den Flash-Modus bringen.
    Weiß ich, die Verbindung funktioniert. Daten wurden auch korrekt gesendet laut CRC-Überprüfung.

    mfg

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Zitat Zitat von Wsk8 Beitrag anzeigen
    Weiß ich, die Verbindung funktioniert. Daten wurden auch korrekt gesendet laut CRC-Überprüfung.
    Und was genau funktioniert dann nicht? Wenn du einen zweiten Transceiver besitzt, kannst du die Kommunikation mitschneiden. Das Protokoll habe ich im Quelltext von tinyasuroboot dokumentiert.

    Grüße,
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Zitat Zitat von markusj Beitrag anzeigen
    Und was genau funktioniert dann nicht?

    Grüße,
    Markus
    Um in den flash zu schreiben, hab ich die Funktion void boot_program_page (uint32_t page,uint8_t*buf) dbenutzt.
    Bei der page, habe ich immer +64 dazugerechnet, da das ja die Größe einer Seite ist. Leider funktioniert es nicht.
    Die Daten in den Flash zu schreiben.

    mfg

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Zitat Zitat von Wsk8 Beitrag anzeigen
    Die Daten in den Flash zu schreiben.
    So weit waren wir schon, hilfreich ist die Aussage trotzdem nicht. Du sagst die Daten werden gesendet. Wie reagiert der ASURO darauf? Welche Zustände durchläuft der Bootloader im ASURO?

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Connection -> OK
    Daten empfangen -> CRC -> OK
    Daten via boot_program_page(...) in den Flash schreiben -> OK

    Programm funktioniert -> FAIL

    Werde wohl selbst noch ein bisschen rumprobieren und debuggen.

    mfg

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Wie heiß werden Nixieröhren
    Von hunni im Forum Elektronik
    Antworten: 25
    Letzter Beitrag: 05.10.2010, 19:29
  2. Zuviele Pages beim Flashen !?
    Von Zehplusplus im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 03.06.2010, 16:19
  3. Habe geflasht aber nichts passiert
    Von Matthias15 im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 14.07.2008, 01:56
  4. Antworten: 12
    Letzter Beitrag: 12.12.2007, 16:08
  5. Antworten: 1
    Letzter Beitrag: 12.04.2007, 10:24

Berechtigungen

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