RoboterNetz.de Foren-Übersicht CadSoft
 Home  •  Forum  •  Suchen •  Mitgliederliste  •  RN-Landkarte  •  Ränge  •  Statistik  •  Download •  Album  •  Links  •  Kalender  •  Letzte Themen
 RN-Wissen Artikelbereich  •  Mitarbeiter  •  Benutzergruppen  •  Chat  •  Registrieren  •  FAQ  •  Profil  •  log in, Nachrichten zu lesen  •  Login
Kalender 
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Neues Thema eröffnenNeue Antwort erstellen
Vorheriges Thema anzeigen Dieses Thema einem Freund schickenZeige Benutzer, die dieses Thema gesehen habenDieses Thema als Textdatei speichernPrintable versionlog in, Nachrichten zu lesen Nächstes Thema anzeigen
Autor Nachricht
HermannSW

Fleißiges Mitglied
Fleißiges Mitglied




Anmeldungsdatum: 18.12.2006
Beiträge: 195
Wohnort: Eberbach

germany.gif
Beitrag Verfasst am: 10.06.2007, 00:08 Antworten mit ZitatNach oben

Hi,

ich hatte schon ab und zu bemerkt, daß der Asuro auch mal früher als 3 Sekunden nach dem Einschalten mit dem eigentlichen Programm startete.

In den Hilfstexten zu DoctorAsuro 1.0 von Arexx-Henk fand ich nun die Antwort:
aus Quizfragen von DoctorAsuro 1.0 hat folgendes geschrieben::
Nur ... Infolge eines Softwarefehlers im ASURO-Bootloaderprogramm wird die orangefarbene SystemLed manchmal lediglich eine einzelne Sekunde und keine drei Sekunden aufleuchten. Sobald das ASURO-Bootloaderprogramm fehlerhafte Signale empfängt, startet das System das Benutzerprogramm bereits nach einer Sekunde und nicht nach 3 Sekunden. Diese Bedingung kann auftreten falls keine Registertaste aktiviert wurde. DoctorAsuro schickt dem ASURO zur Überprüfung der Kommunikation jede Sekunde eine Infrarotnachricht. Das Bootloaderprogramm wird diese Nachricht als falsches Flashkommando an das Bootloaderprogramm interpretieren und sofort das Benutzerprogramm starten.


Und so kann man seinen Asuro einfach "kurzschließen" (sofort nach dem Einschalten des Asuro ausführen!):
C:\>echo "Los geht's" >com4
(mein USB-Transceiver hängt an COM4)

Hier ein minimales Programm zum Testen:
#include <asuro.h>

int main(void)
{
  Init();

  StatusLED( OFF );
  BackLED(ON,ON);

  while (1) ;

  return 0;
}

_________________
Gruß, Hermann.
myIrAsuro.Image
Offline Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen
Asuro-n00b

Stammmitglied
Stammmitglied




Anmeldungsdatum: 12.11.2006
Beiträge: 69
Wohnort: SH
Alter: 23

germany.gif
Beitrag Verfasst am: 10.06.2007, 02:37 Antworten mit ZitatNach oben

Hey klasse hab meinen Asuro auch gerade über RS232(bei mir Com1) "kurzgeschlossen".
Interessant, weiß jemand wie man rausbekommt welchen Code das Flashprogramm zu Anfang sendet, damit der Asuro es nicht als "Fehlerhaften Code" wertet?

Edit:
Ich hab's rausgefunden.
Wenn man im Flashprogramm auf "Programm" klickt, dann sendet es sehr schnell hintereinander das Wort "Flash".
Das konnte ich über einen zweiten Tranceiver rausfinden. Dabei war auch gut zu beobachten, wie er den Programmcode an Asuro sendet.
Leider nur komische Zeichen. In der hex-Datei sind nur Zahlen enthalten.
:1000000012C02BC02AC056C028C027C026C025C099
:1000100024C023C022C021C020C01FC01EC01DC0DC

Die letzte Zeile heißt in jeder Asuro hex file
00000001FF
.
Die sagt bestimmt dem Prozessor, dass das Programm fertig reingeladen ist.
Was sind das für Zeichen, die das flashtool da sendet? Ist das Maschinencode?

Wenn ein "t" gesendet wird, hat das Flashtool keine Rückmeldung bekommen und sendet es daher noch einmal.
Die Zeichenfolge pro gesendete page beträgt bei mir zwischen 62-65 Zeichen.

Edit:
Der Asuro antwortet sobald er "Flash" empfangen hat mit "ASURO" (er gibt sich also zu erkennen Zwinkern ) Das Flash-Programm schreibt dann
Connect to ASURO --> OK !

Dann sendet es nocheinmal "Flash" an Asuro und beginnt dann Paketweise die Zeichen zu senden.
Offline Benutzer-Profile anzeigen ICQ-Nummer
HermannSW

Fleißiges Mitglied
Fleißiges Mitglied




Anmeldungsdatum: 18.12.2006
Beiträge: 195
Wohnort: Eberbach

germany.gif
Beitrag Verfasst am: 10.06.2007, 06:42 Antworten mit ZitatNach oben

Hallo,
Asuro-n00b hat folgendes geschrieben::
...
Die letzte Zeile heißt in jeder Asuro hex file
00000001FF
.
Die sagt bestimmt dem Prozessor, dass das Programm fertig reingeladen ist.
Ja.
Zitat:
Was sind das für Zeichen, die das flashtool da sendet? Ist das Maschinencode?

Ja, für mehr Informationen siehe:
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/AsuroHexfiles

_________________
Gruß, Hermann.
myIrAsuro.Image
Offline Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen
radbruch






Anmeldungsdatum: 27.12.2006
Beiträge: 3834
Wohnort: Stuttgart
Alter: 47

blank.gif
Beitrag Verfasst am: 10.06.2007, 09:44 Antworten mit ZitatNach oben

Hallo

Lustig was der Kleine so alles kann. Mit einer IR-Fernbedienung kann man ihn auch "kurzschliesen".

Am Ende der Übertragung kommt noch ein "ok", vermutlich vom asuro.
(http://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=287985#287985)

Gruß

mic

[Edit]
Einfache Versuche den Startzeitunterschied zu messen scheiterten daran, dass kein mir bekannter Timerwert das Init() von asuro.c überlebt. Eigenlich müste ja ein Timer im Bootlader gestartet werden um die IR-Kommunikation zu ermöglichen und um die Start-Wartezeit zu messen. Aber wo ist der Wert gespeichert und wie greift man nach dem eigentlichen Programmstart darauf zu?

_________________
Image
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Online Benutzer-Profile anzeigen
HermannSW

Fleißiges Mitglied
Fleißiges Mitglied




Anmeldungsdatum: 18.12.2006
Beiträge: 195
Wohnort: Eberbach

germany.gif
Beitrag Verfasst am: 10.06.2007, 12:54 Antworten mit ZitatNach oben

radbruch hat folgendes geschrieben::
Hallo

Lustig was der Kleine so alles kann.
Smile
Zitat:
...
[Edit]
Einfache Versuche den Startzeitunterschied zu messen scheiterten daran, dass kein mir bekannter Timerwert das Init() von asuro.c überlebt. Eigenlich müste ja ein Timer im Bootlader gestartet werden um die IR-Kommunikation zu ermöglichen und um die Start-Wartezeit zu messen. Aber wo ist der Wert gespeichert und wie greift man nach dem eigentlichen Programmstart darauf zu?


Auf S. 109(114) der Datei Doc/AVRInstructionSet.pdf von der Asuro-CD findet man in Abschnitt 7.6.6 The .initN Sections, wie man etwas direkt nach einem Reset noch vor Aufruf von main() ausführen lassen kann [__init()].

Außerdem musst Du ja auch nicht die Asuro-Library für diesen Zweck verwenden, man kann auch ganz ohne Asuro-Library sinnvolle Dinge programmieren, siehe z.B.:
http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=29635

_________________
Gruß, Hermann.
myIrAsuro.Image
Offline Benutzer-Profile anzeigen E-Mail senden Website dieses Benutzers besuchen
damaltor

Robotik Einstein
Robotik Einstein




Anmeldungsdatum: 28.09.2006
Beiträge: 3536
Wohnort: Jena
Alter: 23

germany.gif
Beitrag Verfasst am: 13.06.2007, 14:40 Antworten mit ZitatNach oben

die zeile

:000...1FF bedeutet, dass der programmcode hier zuende ist. darum 0000. das 1FF ist die prüfsumme zu 0000 oder?

das hexfile selbst ist schon maschinencode. es wird in der hexadezimalen form übertragen, da gibts halt auch die buchstaben A-F =)

_________________
kleinschreibung ist cool!

Image

damaltor
Offline Benutzer-Profile anzeigen E-Mail senden MSN Messenger ICQ-Nummer
Sternthaler






Anmeldungsdatum: 29.05.2005
Beiträge: 989

germany.gif
Beitrag Verfasst am: 13.06.2007, 17:13 Antworten mit ZitatNach oben

Hallo zusammen.
Das übertragen Zeug ":1000000012C02BC02AC056C028C027C026C025C099 " ist sogenanter Intel-Hex-Code und steht auch so in den test.hex-Dateien.

Folgender Aufbau:

:       Konstant
10      Anzahl Datenbytes (HEXZ-Zahl, also dezimal 16 Byte)
0000    Adresse, an die das Erste Datenbyte zu speichern ist
00      (fast) konstant. Hier gibt es noch ein paar andere Codes
12 C0 2B C0 2A C0 56 C0 28 C0 27 C0 26 C0 25 C0    Daten: 16 * 2 Nibbel (Halbbyte)
99      Prüfsumme (Bin nicht sicher, meine aber mit 'Anzahl Datenbyte')

:       Konstant
00      0 Datenbytes
0000    Adresse, hier ohne Bedeutung
01      <--- Stopcode
FF      Prüfziffer

_________________
Lieber Asuro programieren als arbeiten gehen.
Offline Benutzer-Profile anzeigen
Beiträge vom vorherigen Thema anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen
Vorheriges Thema anzeigen Dieses Thema einem Freund schickenZeige Benutzer, die dieses Thema gesehen habenDieses Thema als Textdatei speichernPrintable versionlog in, Nachrichten zu lesen Nächstes Thema anzeigen



 Gehe zu:   



Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen




Die große Community für Robotik-, Mikrocontroller- und Elektronik Bastler als auch Experten
 Roboternetz RSS2.0 News Feed
Alle Zeiten sind GMT + 1 Stunde