Hallo, ich hab mir hier selbst einen ISP-Programmer für die AT89S-Reihe von ATMEL gebastelt. Funktioniert auch alles einwandfrei. Ich frage mich aber, ob mein Ansatz für die Software richtig ist, oder ob es was besseres gibt. Ich habe für jeden Typ, den ich programmieren will, eigene Routinen geschrieben, die entsprechend vom Programmer verwendet werden. Jetzt stellt sich mir die Frage, ob es nicht sinnvoller wäre, eine Art Interpreter dafür zu implementieren, und die Anweisungen, wie welcher Controller zu programmieren ist, im Codespeicher des Programmers zu hinterlegen. Nach ersten Überlegungen müsste das vom Speicherverbrauch im Endeffekt kürzer sein, als für jeden Controller einen Satz fast identischer Routinen zu implementieren. Denn aktuell unterstützt der Programmer vier Typen, und es ist bereits knapp die Hälfte des Code-Speichers des Programmers belegt. Ist der neue Ansatz berechtigt? Und wenn ja, wie könnte ich das sinnvoll lösen? Danke Gruß Ralf
Wie sieht dein Programmer denn aus, dass du nicht die Standartsoftware nutzt? Benutzt du eine andere Schnitstelle?
Ist ein kompletter Selbstbau. Hab das Ding zum einen gebaut, um was zu lernen (Learning-by-doing ist immer noch das beste), zum andern, weil mein Parallel-Programmer die neuen AT89S nicht kann ;-) Wird auch ganz normal über RS232 angeschlossen, d.h. ich könnte ihn theoretisch auf irgendeine PC-Software anpassen. Gruß Ralf
Da habe ich noch eine Frage: Kann man die Routinen nicht in die PC-Software einfließen lassen? Wenn du dort objektorientiert arbeitest, dann könntest für jeden Chip eine Ableitung machen, der ebend nur diese kleinen Änderungen enthält. Wenn dir dadurch die Software zu groß wird kannst du nocheinmal upx drüberlaufen lassen :-) So könntest du deine Hardware dümmer lassen, was die Sache einfacher macht(glaube ich) Spricht etwas direkt dagegen? So wie ich das verstanden habe schickt dein Programm immer die gleichen Daten in deinen Programmer und die Rotinen sitzen dann auf irgendeinem Chip. Das Problem liegt da ja auch in den Updatemöglichkeiten. Ich wenigstens arbeite lieber an der PCSofware als an der Software von einem eigentlich abgeschlossenen Hardwareprojekt.
mach die HW so dumm wie möglich, aber so intelligent wie nötig! bau einen Programmer mit ein paar festen Routinen, die du dann per PC-Software (etwas) anpassen kannst. (Flags oder sowas) und dann speicherst du für jeden Typ, den du unterstützt die Flags und lädst die vor dem programmieren in den programmer. so kannst du neuere bausteine unterstützen OHNE das du jedesmal die firmware änderst. auch solltest du daran denken eine art emulation zu ermöglichen, um später neue bausteine zu unterstützen, die du nicht über die flags unterstützen kannst. so kannst du zumindest (auch wenn es dann erheblich langsamer geht) ganz neue bausteine programmieren.
das ist auch das problem mit dem AVRISP (die serielle version nicht die stk500) gewesen (die neuen kann man damit nicht programmieren, weil dort die "device codes" im programmer gespeichert sind und der zu programmierende baustein über diese codes ausgewählt wird. wenn nun ein neuer kommt müsste jedesmal man die firmware ändern um ihn zu unterstützen.
Ja, ich verstehe, was ihr meint. Die PC-Software ist leichter anzupassen. Dazu müsste ich aber eine entsprechende Programmier-Software für den PC haben. Könnt ihr dazu Empfehlungen machen? Ich dachte an etwas wie Visual Basic oder Visual C/C++. Gibts da was freies (=kostenloses) oder ziemlich geldbeutelfreundliches? Gruß Ralf
was hältst du den von visual c++ Express, ist eine Beta Version welches das .net framework benutzt kostenlos von MS zu beziehen. Im neuen Framework 2.0 gibt es auch eine Bibliothek, welche die serielle Schnittstelle direkt anspricht. Ich benutze die Version für c#, und bin sehr zufrieden damit, obwohl es nur ein Beta ist. Ansonsten gibt es doch ein Haufen IDE's für c/c++ wenn man ein bisschen googelt. Bsp: http://www.bloodshed.net/devcpp.html sieht sehr vielversprechend aus G. Tobias
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.