Hi, wie kann ich den Quellcode für den Bootloader bekommen? ich will gerne wissen wie sowas eigentlich funktioniert und einen eigenen Bootloader selbst zu schreiben, der mit ASURO-Flasher kompatibel ist. Ist der Quellcode wirklich geheim???
Druckbare Version
Hi, wie kann ich den Quellcode für den Bootloader bekommen? ich will gerne wissen wie sowas eigentlich funktioniert und einen eigenen Bootloader selbst zu schreiben, der mit ASURO-Flasher kompatibel ist. Ist der Quellcode wirklich geheim???
naja "geheim" ist wahrscheinlich das falsche wort... aber veröffentlicht wurde er nicht, und urheberrecht gilt auch hier. schreib doch mal ne mail an arexx, ich glaube du bist nicht der einzige den das interessiert...
Also für die Statistik:
Mich würde der Quellcode auch interessieren. Besonders, da ich gerne den ATmega168 einsetzen würde (mehr Flash und ein paar andere nette features) und dann den Bootloader portieren könnte.
Schöne Grüße,
D e n i s
das kannst du machen. es gibt einen alternativen bootloader. hier:
http://home.planet.nl/~winko001/Asur...uBtlPagFrm.htm
auf der homepage von Henk
Ja, das hab ich gesehen, aber dort gibt es nur ein .hex-File und ebenfalls nicht den Quellcode. Oder hab ich das einfach nur übersehen?
Gruß,
D e n i s
naja es ist ja schliesslich auch shareware. aber frag henk doch mal
Ich hab Henk gefragt, er meinte er hat es nicht geschrieben, sondern sein Kollege von ihn. Henk hat ihn ein eMail geschrieben, und wird wieder zurückmelden, wenn der ihn ein Antwort gegeben hat.
das ist doch schonmal nicht schlecht. vielleicht hast du ja glück.
ich denke das würde alle heir im forum interessieren.
Ich bin der Bootloader-Schreiber. Ich habe mit Henk gesprochen und er wird jedem Interessenten den Bootloader mit Projektdatei usw. zuschicken. Ich muss aber an dieser Stelle darauf hinweisen, dass der Bootloader in Assembler geschrieben ist. In C wäre der Code zu groß geworden (1KB max.). Aber es ist evtl. das geeignete Projekt für den Einstieg in die Assembler-Programmierung. C ist zwar eine mächtige Programmiersprache, aber manche Programmteile lassen sich halt nur in Assembler realisieren. Wer in C programmiert sollte die Grunglagen der Assemblerprogrammierung kennen. Das ist in dem Moment wichtig, wenn man den vom Compiler erzeugten Zwischencode (Assemblerprogramm) kontrollieren möchte.
Peter (Ronny10)
Okay,
hier ist er denn....
http://home.planet.nl/~winko001/
Gruss
Henk
Hmm, ich hab es nicht gefunden auf der seite :(
da klickst du auf asuro, dann auf bootloader, und dann auf bootloader source.
super Peter, vielen Dank! Natürlich auch an dich, Henk.
Aso, Cache problem ^^, ich sah immer nur die alte seite
Hmm... In Assembler :(
Ich muss langsam mal anfangen assembly zu lernen ;)
Toll, danke an Henk und Peter. Auch die pps-Präsentation ist einsame Spitze, mein Favorit ist "Schalte asuro ein" mit entsprechendem Bild.
Im Moment ist mir das alles noch zu schwierig. Ich habe zwar schon in Assembler programmiert, allerdings waren das diverse Mikroprozessoren wie z80, 8080 oder 6809. Mit risc-Prozessoren hatte vor dem asuro noch gar keinen Kontakt. Aber ich vermute, dass wird sich bald ändern.
Gruß
mic
Ich habe auch vergessen VIELEN VIELEN DANK zu sagen ^^
noch ein mal:
VIELEN VIELEN DANK an HENK und PETER ^^
vielen Dank für die Veröffentlichung der Bootloader-source!
Leider kann ich das .rar-file nicht entpacken.
Es scheint nur die Datei readme.txt von 1154 Bytes zu enthalten, die sich nicht öffnen lässt.
Woran kann das denn liegen? Was mache ich falsch???
Gruss Heiner
Bei mir funktioniert es wunderbar. In der rar-Datei ist ein Ordner und die readme.txt. Mit welchem Programm hast du es entpackt? Ich verwende WinRAR.
probiers mal mit der konsolenversion (geht glaub auch unter windows: unrar datei.rar)
danke Pascal und danke damaltor!
Hat mit WinRAR problemlos geklappt. Mein Power-Archiever und WinZip wollten mir nicht helfen....
Nun heisst es nur noch, die Sache zu verstehen
Gruss Heiner
Hallo Heiner, wenn du Fragen hast, werde ich versuchen sie zu beantworten. Das gilt natürlich für alle an diesem Thema Interessierten!
Peter (Ronny10)
Hallo Peter,
darauf kopmme ich gerne zurück, wenn ich mal so richtig angefangen habe und es klemmt!
Gruss Heiner
habe ich das richtig verstanden: atmega168 + dieser boatloader und ich kann den atmega168 als ersatz für den atmega8 samt IR flaschen und aller sonstigen software nutzen?Zitat:
Zitat von damaltor
ja, das müsste es theoretisch gewesen sein. evtl musst du die fusebits noch setzen, ich würde folgendes vorschlagen:
Low Fuse: 0xD6
-Takt Wird NICHT durch 8 geteilt
-Takt wird NICHT am Pin PB0 ausgegeben, der Pin kann normal genutzt werden
-Externer Quarz, Volle SChwingung (Motoren stören sonst), Längstmögliche Start-Up-Zeit (ca 100ms) falls die batterien etwas leerer werden)
High FUse: 0xD5
-Reset Pin ich KEIN I/O pin (sonst wäre flashen per isp nicht mehr möglich)
-Debugwire ist abgeschaltet
-ISP bleibt eingeschaltet, falls du es nochmal brauchst
-Watchdog ist nicht dauerhaft per hardware aktiviert, sondern wird bei bedarf softwaremäßig gestartet
-Der EEPROM bleibt bei einem "Chip Erase" erhalten
-Brown Out Detection ist Eingeschaltet. WEnn die BAtteriespannung unter 2,7V fäält wird der PRozessor in reset gehalten (evtl wäre hier die nächsthöhere Stufe, 4,3V, angebracht. wenn dir das lieber ist melde dich mal)
Extended Fuse: 0xF8
Bootloader-Bereich ist 1024 Words groß (ist ne schätzung, es sollten auch 512 words reichen. probiers mal.)
NAch reset wird der Bootloader gestartet
ACHTUNG: das bereits kompilierte hex-file ist für einen mega8, du musst also auf jeden fall neu kompilieren!!
flashen kannst du dann mit dem auf der page verfügbaren software "OConsole", hyperterminal/minicom werden weiter funktionieren wie gewohnt. das flash tool wird nicht mehr gehen.
hi damaltor,
danke für die info,
jetzt ist es die frage: was gewinne ich ausser dem größeren speicher? So richtig bin ich aus der doku bei atmel nicht schlau geworden. Die anzahl eder aus/eingänge ändert sich wohl nicht, oder?
die beiden chips sind pinkompatibel. sie haben die gleiche bauform, und die gleiche pinbelegung. eigentlich gewinnst du (sichtbar) nur den doppelten speicher, intern ist der prozessor etwas moderner (er hat zB drei Fuse bytes anstelle der zwei des mega8), das dürfte dir aber nicht auffallen beim arbeiten. evtl ist der eeprom auch doppelt so groß, das weiss ich aber nicht aus dem kopf. der mega168 hat 16kb speicher (minus 1 für den bootloader), und ist ansonsten mehr oder wneiger identisch.
ok,
da ich einen weg suche um bei der verwendung der erweiterungsplatine nicht auf die linienerkennung verzichten zu müssen werde ich wohl nach anderen möglichkeitenn ( https://www.roboternetz.de/phpBB2/viewtopic.php?t=9635 ) ausschau halten...
die einfachste (naja...) lösung wäre, eine extra platine aufzusetzen, auf die du einen meg16 oder 32 steckst, und dessen richtige pins durch lange stifte in den original-sockel des mega8 verbindest, ungefähr wie beim asuro eval board (asurowiki!)
somit könnte ich dann - nur theoretisch, oder auch praktisch? - die zusätzlichen ressourcen eines atmega16, bzw. 32 auf diesem steckboard nutzen, ohne die normalen funktionen des asuro zu beeinträchtigen? Könnte also z.b. die ansteuerung und auswertung der liniendioden nach oben zu den zusätzlich ein/ausgängen verlegen?
Wenn das so einfach ist - wieso gibt es nicht schon eine reihe solcher lösungen?
naja ganz einfach ist es eben leider nicht...
du müsstest...
-eine platine aufbauen, auf der ein meg32 o.ä. sitzt
-die richtigen pins des mega32 finden, welche beim meg8 des asuro benutzt werden (z.B. PD6 für die frontled...)
-diese pins mit litzen oder anderer verdrahtung (wenn du lust hast, kannste auch ätzen) so anordnen, dass sie dem meg8 des asuro entsprechen, und auf zwei reihen mit je 14 langen pins legen, welche nach unten aus der neuen platine ragen
-dann kannst du diese langen pins in die fassung des asuro-meg8 stecken. jetzt werden die programme die du schreibst (für den meg32) ausgeführt, und die bereits belegten pins (wie zB die frontled) über die langen stifte und über die alte fassung des meg8 zur asuro-hauptplatine "durchgeschleift", und alle noch unbenutzten pins des meg32 ständen dir frei zur verfügung.
nachteil: flashen per IR fällt erstmal weg, bis du einen bootloader im meg32 hast (das alte henne-ei-problem: du brauchst IR zum flashen, aber ohne einen bootloader geflasht zu haben hast du kein IR)
könnte recht wackelig werden, wenn die platine nur mit den pins in der fassung befestigt ist, man sollte drüber nachdenken das bohloch der asuro platine zur besseren befestigung zu nutzen
ausserdem ist es absolut nicht empfehlenswert, den quarz so weit vom prozessor zu haben, die pins für den quarzanschluss des meg32 würde ich deshalb mit einem neuen quarz auf der neuen platine verbinden und den alten quarz des asuro einfach unbenutzt lassen.
der originale meg8 fällt dann natürlich weg!
fragen hierzu noch:
- braucht der meg32 noch eine zusätzliche beschaltung auf seinem board, oder reichen die von unten hochgelegten pins des atmega8 - um erstmal die funktion des meg8 zu übernehmen?
- wäre es denkbar, dass evtl. arexx bei dem flaschen des bootloaders hilft?
die grunschaltung sollte wohl reichen, sofern die pins vcc, gnd, avcc und reset sowie rx und tx verbuden sind. beim flashen hilft arexx wohl nicht, aber man kann mit ein paar wenigen klienteilen eine kabelgebundene möglichkeit zusammenbasteln (kleine anerkung: wenn du einen stecker auf die platine mit dem meg32 baust, der die pins reset, miso, mosi,sck,vcc,gnd hat, kannst du den asuro ab sofort kabelgebunden flashen (den meg32).... dann sparst du dir das ganze infrarot ding.) schau mal im roboternetz-wissen nach dem avr tutorial.
Hallo Inka,
der Bootloader ist von mir in ASSEMBLER geschrieben. Wenn du dazu Unterstützung benötigst, kann du mir schreiben. So einfach, wie Damaltor sich das vorstellt, ist eine Adaption auf einen anderen ATmega nun doch nicht! Ich hätte da für dich eine ATmega32-Platine, die du als Ersatz für den ATmega8 des ASURO einsetzen könntest. Diese Platine ist ein Prototyp der ersten Serie eines von mir entwickelten Mikrocontroller-Experimentiersystems, das bald über AREXX auf dem Markt erscheinen wird. Dazu gehört auch ein Programmieradapter für den Parallelport, mit dem du, unter Verwendung von PonyProg2000, dass fertige Programm, über die auf der Platine vorhandene ISP, zum ATmega32 übertragen kannst. Wenn du also ersthaftes Interesse hast und dir die Umbauarbeit machen willst, schreibe mir. Ich würde dich gerne, unter der Voraussetzung das du mir zeitweise Informationen über den Fortgang deiner Arbeit zukommen lässt, bei diesem Projekt unterstützen.
Gruß
Peter (Ronny10)
schade, ich dachte es wäre einfacher... aber der mega32 hat ja auch einen etwas anderen befehlssatz und ist nicht 100%ig kompatibel zum meg8.
aber na gut... ;)
hallo Peter,
natürlich würde ich mich über deine unterstützung sehr freuen...
@damaltor
ist der befehlssatz des 32 um bestimmte befehle dem 8 gegenüber erweitert, oder grundverschieden?
Hallo Inka, hallo Malte (Damaltor)
eure Nachrichten habe ich gelesen. Das System nennt sich MDES = Mikrocontroller-Digitaltechnik-Experimentier-System und besteht z.Z. aus 12 Modulen. Es ist von mir so entwickelt worden, dass man damit wirklich experimentieren kann d.h. Mikrocontroller-Schaltungen für die verschiedensten Anwendungen lassen sich damit sehr einfach aufbauen (ohne Lötarbeiten) und genau so schnell auch wieder demontieren, so dass man die Module zu anderen Aufgabenstellungen wieder verwenden kann. Die Basis dazu bildet die erwähnte Platine mit dem ATmega32, der mit 16MHz getaktet wird (Quarz) um das Maximum an Leistung herauszuholen. Bitte schickt mir eure E-Mail-Adressen, damit ich euch die MDES-Dokumentationen, Teil1 und Teil2, zuschicken kann. Die Dokumentation ist so weit fertig, dass man alle Module aufbauen kann und z.B. mit einem LED-Modul eine Ampelsimulation programmieren kann. Teil3 der Dokumentation, der sich über entsprechende Beispielprogramme mit den anderen Modulen auseinandersetzt, ist in Bearbeitung. Im Moment habe ich hier nur Leerplatine d.h. ihr müsstet diese selber bestücken. Das endgültige System wird es auch fertig aufgebaut geben, damit z.B. Schulen und Interessenten die Probleme beim Aufbau eines solchen Systems hätten, damit etwas anfangen können!
P.S. Im Moment habe ich durch andere Projekte etwas Stress. Kann also einige Tage dauern, bis ich euch die Doku zuschicke!
Gruß
Peter (Ronny10)
super, danke! meine mailadresse ist damaltor@gmail.com , ich freu mich drauf. ich habe einen großen grundstock an teilen zuhause, gibt es irgend was besonderes was man im allgemeinen nicht rumliegen hat, und was man noch bestellen sollte? ich will eh noch mal bei reichelt bestellen, dann ware das nicht schlecht zu wissen.
Hallo Ronny10,
ich bin auch total interessiert an einem modularen Experimentiersystem und würde mich gerne in die Liste der Doku-Empfänger einreihen.
Wie auch damaltor, würden mich natürlich Bauteile und auch Preise interessieren.
Gruß Sternthaler
P.S.: E-Mail-Adresse kommt per PN, wenn du so nett bist und mich auch beglückst.
Hallo Peter kannst du mir die Doku auch mal schicken: ggerrit1@web.de
mfg liggi
Da der User Ronny10 mich seit kurzer Zeit per email angreift, und dabei meiner meinung nach recht persönlich wird, möchte ich hier noch einmal für alle sichtbar eine mündliche Verwarnung aussprechen. damit ihr das nachvollziehen könnt, hier ein abriss aus der email-korrespondenz, BEgonnen hat das ganze in der Diskussion um das MDES, was er uns zugeschickt hat; im Beispiel werden an einem Mega32 8 leds auf einmal angeschlossen:
Zitat:
Zitat von damaltor
Da ich keine LowCurrent-LEDs nutze, und 20mA meines erachtens kein Problem darstellen, war ich etwas verwundert. trotzdem verunsichert, nochmal nachgelesen. normale leds sollten etwa 20mA bekommen. Das habe ich ihm geschrieben. Seine Antwort:Zitat:
Zitat von Ronny10
Hier brach der mailkontakt kurze zeit ab, ich habe mich erneut bei ihm gemeldet. Wir einigten uns darauf, dass der Strom je nach verwendeten LEds ohnehin angepasst werden müsste. Soweit so gut.Zitat:
Zitat von Ronny10
Heute bekam ich zuerst eine Email:
Welche ich erfolgreich ignorierte. Ganz kurze zeit später kam noch eine:Zitat:
Zitat von Ronny10
mir fällt grad auf: es heisst I2C und nicht II2c. die alternative wäre IIC, was aber recht ungebräuchlich ist.Zitat:
Zitat von Ronny10
Daraufhin meine Antwort:
Zitat:
Zitat von damaltor
Da dieses Problem mich betrifft, und ich die verwarnung ausspreche, möchte ich euch das gern plausibel machen um nicht den eindruck der willkür zu erwecken.
-> Hiermit spreche ich Ronny10 eine mündliche Verwarnung aus. <-
Sollte jemand was dazu sagen wollen, dafür oder dagegen, nur zu ;)