Hallo, Für mein aktuelles Projekt sollte es später jedem möglich sein Softwareupdates einzuspielen auch ohne vorhandenem Programmiergerät, daher möchte ich einen Bootloader verwenden. Ich habe mich nun bereits ein wenig eingelesen, allerdings nicht sonderlich viele gute Quellen gefunden. Ein Problem welches sich mir stellt ist, dass ich keinerlei Kenntnisse in Assembler habe, ich aber bis jetzt keinen in C geschriebenen Bootloader gefunden habe. Bis jetzt habe ich gefunden: AN1310 - direkt von Microchip http://ww1.microchip.com/downloads/en/appnotes/01310a.pdf ds30 Loader - in der Gratisversion http://mrmackey.no-ip.org/elektronik/ds30loader/forum/index.php und den Tiny PIC Bootloader http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm Die Frage: Mit welchen bekomme ich wohl das beste Ergebnis? :) Die Kommunikation mit dem PC erfolgt über die UART-Schnittstelle und dazugeschaltenem RS232->USB wandler. Danke für eure Hilfe! :) LG Markus
Da schmeisse ich noch einen weiteren Bootloader mit in den Ring: http://hg.kewl.org/pub/wellington Der ds30loader ist eine abgekupferte Version des genialen tinypic Bootloaoders. Wellington ist eine überarbeitete Version davon. IMHO wesentlich einfacher anpassbar für PIC18 und es gibt ein vernünftiges CLI Interface für Linux. Ich habe den Wellington Bootloader verwendet und er funktioniert einfach.
Mikroe hat ein paar für Pic16, Pic18 usw. seriell und USB mit frontend für Linux und Windows (und OSX)
Subnano schrieb: > Da schmeisse ich noch einen weiteren Bootloader mit in den Ring: > http://hg.kewl.org/pub/wellington Der sieht auch sehr gut aus :) Hast du damit schon mal einen 18F45K22,46K22,25K22 oder 26K22 betrieben? Einen direkt in C geschriebenen Bootloader gibt es nicht? Beim Wellington scheint es sich um eine Kombination aus Assembler und C zu handeln, Ich hab zwar schon gewusst das man Assembler Code sehr gut auch in C Code verwenden kann, habs bisher nur noch nie gesehen^^ Der Rächer der Transistormorde schrieb: > Mikroe hat ein paar für Pic16, Pic18 usw. seriell und USB mit frontend > für Linux und Windows (und OSX) Funktionieren die dann auch mit dem MPlabX 2.20 und XC8 Compiler? Später wird noch ein C# Programm(somit für Windows) geschrieben welches neben dem Update auch noch weiter Funktionen bieten soll. LG Markus
Markus B. schrieb: > Einen direkt in C geschriebenen Bootloader gibt es nicht? Ich habe schon mal überlegt, den HID Bootloader aus der USB Bibliothek (MLA) für USART anzupassen. Dazu bin ich aber bisher aber noch nicht gekommen, bzw ich war mir auch nicht sicher, ob ich nicht lieber doch einen anderen nehmen soll. (Es gibt ja so viele ;-) Der Bootloader ist in C geschrieben und vom Code her bestimmt umfangreicher als die oben genannten Alternativen. Erste Anwendung dafür wäre bei mir auch ein 18FxxK22. Das mitgelieferte PC Programm (Sourcecode Qt5 / MAC, Linux, Windows) würde ich dann auch erweitern und für beide (HID und USART) nutzen.
:
Bearbeitet durch User
Markus B. schrieb: > Subnano schrieb: >> Da schmeisse ich noch einen weiteren Bootloader mit in den Ring: >> http://hg.kewl.org/pub/wellington > > Der sieht auch sehr gut aus :) Hast du damit schon mal einen > 18F45K22,46K22,25K22 oder 26K22 betrieben? Nein, "nur" einen PIC18F26K80 - siehe boot/easy-can.asm. Es ist aber relativ einfach: das Template nehmen (oder ein anderes File), PIC Typ wählen, Baudrate und Frequenz einstellen, Uart wählen (PORTB oder PORTC), Init ggf. anpassen (für Digitalports) und die Config-Register setzen. make generiert dann das Hex-File. Wie sehen denn Deine o.g. Werte/Einstellungen aus ? BTW: es ist auch ein CAN-Bootloader Template bzw. Beispiel vorhanden. Tinypic-Bootloader (mit abstrichen auch ds30loader) und insbesondere Wellington sind in ASM geschrieben, um alles in Bezug auf Code-Größe aus dem bzw. in den PIC zu quetschen. Das wird man mit C nicht hinbekommen.
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.