Hallo zusammen!

Ich weis dass der Thread schon ziemlich alt ist, aber ich wollte nicht extra einen neuen machen wenn es schon um das selbe geht.

Ich bin gerade dabei, die make-liste im Programmers Notepad zu erweitern.

Eine Programm, das mir make_all.bat, make_clean.bat und das makefile kopiert, ist schon fast fertig.
Das besondere dabei ist, das sich das Programm den C-Code durchliest und merkt ob der Code für das Main-Board oder das M32-Board geschrieben ist (#INCLUDE "blabla.h"). Danach wählt es aus, welche make-dateien kopiert werden sollen, man kann also für die unterschiedlichen Boards unterschiedliche Dateien nehmen. Ausserdem setzt es "TARGET = " automatisch. Nur wenn man den I2C-Bus benutzt muss man die Lib dafür noch manuell einbinden, aber das sollte bald behoben sein
(Sobald auch mein Problem in dem 2 Tool behoben ist und beides funktioniert stelle ich natürlich einen Download bereit)

Allerdings bräuchte ich noch etwas hilfe zu einem anderen Tool:

Ich möchte, dass ich mit irgend einem Shortcut im PN die HEX in den Roboter laden kann. Inzwischen Bin ich so weit, dass ich ein Terminal geschrieben hab, ähnlich Hterm. (Nur um bischen mit der connection zu spielen)
Jetzt mache ich ein weiteres Prog, das mir das ganze Vollautomatisch hochlädt. Wie die Datei heisst und wo sie ist weis es ja, wenn ich Pfad und Name der C-Sourcedatei als Command übergebe (.c durch .hex ersetzen)
Inzwischen Bin ich so weit:
1. Reset
2. Erkennen ob was angeschlossen ist
3. Erkennen was angeschlossen ist anhand der Controller-ID
4. Falls das Base-Board angeschlossen ist, wird die Akkuspannung ausgelesen

So. Als nächstes muss die Baudrate eröht werden, die Datei hochgeladen und die Baudrate wieder runtergesetzt werden.
Das mit der Baudrate erhöhen sollte kein Problem sein.

Allerdings währe ich dankbar, wenn mir noch jemand erklären könnte, wie das mit dem Hex-hochladen genau funktioniert.
sprich:
- welche Bytes muss ich senden um den Vorgang einzuleiten
- muss ich einfach das Hex-file Byte für Byte übertragen?
- was soll das "Write 256b @0 ; CRC16: 0xDDAA "? (ähnliches ist ja mehrmals vorhanden)
- woher weis der controller wann die Datei zu ende ist?
- muss ich den restlichen freien Speicher mit irgendwas überschreiben (fast ganz am ende der Debug Ausgabe kommt noch ein haufen 255) oder passt das hexfile genau hinein?

MFG
-schumi-

ps:
Was kann eigentlich passieren wenn die hex nicht ordnungsgemäß übertragen wird? Der Bootloader müsste ja noch da sein, aber kann das Programm den Atmega dann zerstören?
übrigens: ich programmiere in FreeBASIC, weil ich da mindestens 10 mal so fitt/schnell bin wie in C++