Hallo zusammen Mein PIC32MX450F256H würde ich gerne mit einem MemoryStick bootloaden können. Mit "Generate 16-bit code" kompiliert alles gut und auch die Zielapplikation funktioniert mit diesem Bootloader, jedoch ist diese Option nur 60 Tage(?) gültig :-) ...Diese Option habe ich nun nicht mehr. Wenn ich das richtig interpretiere, wird ohne diese Option der Code grösser als ins BootFlash rein passt (siehe Bild). Leider bin ich absolut nicht bewandert, wie/was man beim Linker einstellen muss, dass 1. der Bootloader kompilliert, und 2. was ich dann beim Linker für die "Ziel-Firmware" ebenfalls anpassen muss. Ich hätte erwartet, dass jemand schon vor dem selben Problem stand, einen USB-MemoryStick-Bootloader für den PIC32MX zu machen... Leider finde ich keine Hilfe im Internet: Ist es zu trivial resp. ich bin zu blöd? Im Beitrag Beitrag "PIC32MX Bootloader MSB" wird auf ein Forumsbeitrag bei Microchip verwiesen, wo einiges hin und her kopiert und editiert wird etc. Ich blicke da nicht durch, zumal am Schluss ja die Applikation reproduzierbar abstürzt. www.microchip.com/mymicrochip/filehandler.aspx?ddocname=en573735 gibt's Hinweise, wie man das Linkerskript anpassen muss, nachdem der Bootloader kompilliert. Soweit bin ich aber nichtmal. Kann mir jemand sagen, wo ich was bei den Linkerscripts anpassen muss? Wieso gibt's kein Tutorial? Vielen Dank ps: Langsam geht mir das Harmony/XC32 auf den Sack. Wenn alles klickibuntimässig auf Anhieb funktionier, ist ja gut. Wenn es aber nicht geht, muss man bei Microchip richtig mühsehlig suchen und manuell irgendwas wursteln. Angefangen bei Portpins setzen über Funktionen, die im XC-Compiler mit neuen Versionen einfach deaktiviert werden etc.
Master S. schrieb: > ps: Langsam geht mir das Harmony/XC32 auf den Sack. Wenn alles > klickibuntimässig auf Anhieb funktionier, ist ja gut. Wenn es aber nicht > geht, muss man bei Microchip richtig mühsehlig suchen und manuell > irgendwas wursteln. Angefangen bei Portpins setzen über Funktionen, die > im XC-Compiler mit neuen Versionen einfach deaktiviert werden etc. Hmm, das Problem kenne ich. Ich habe auf der PLIB (der Vorgänger sozusagen) basierende Projekte umgesetzt, die PLIB wurde fallengelassen. Jetzt darf man umständlich die PLIB wieder einfrickeln, um die alten Projekte überhaupt noch bauen zu können. Schlimmer noch: In der PLIB sind Fehler, die finden ist in der Macrohölle ein absoluter Wahnsinn. Noch schlimmer: Beispiele in der Hilfe basieren noch auf der PLIB. Darum habe ich alle meine PIC32 Projekte auf eine selbergeschriebene Basis getellt. Die ist (realtiv) unabhängig von der Compilerversion. Natürlich ist das kein Option für USB... Das ist eine neue Mode mit diesen Frameworks, und hat so seine Nachteile... Das Problem gibts auch bei STM32 und CUBEMX. Derselbe Mist. Bei uns in der Arbeit haben sie begonnen, auf von der Peripheral Lib Cube umzustellen, aber dann schnell einen dreifachen Salto rückwärts gemacht, wegen "toller" "Fundstücke" im Cube-Code. @Topic: Schau dir mal den M-Stack an: http://www.signal11.us/oss/m-stack/ Ich habe den für CDC verwendet, das ging einigermaßen (verglichen mit dem von Microchip...). Es gibt auch Beispiele für Mass-Storage, daraus einen Bootloader basteln sollte möglich sein. Eines muss klar sein: Ich habs nicht ausprobiert, über die Güte der Sache kann ich also nichts sagen! USB ist sowieso ein mühsames Gewürge auf Microcontrollern, zumindest aus meiner Sicht...
Master S. schrieb: > ch hätte erwartet, dass jemand schon vor dem selben Problem stand, > einen USB-MemoryStick-Bootloader für den PIC32MX zu machen... Leider > finde ich keine Hilfe im Internet: Ist es zu trivial resp. ich bin zu > blöd? Üblicherweise nimmt man (Micro-)SD Karten, die sind eine Größenordnung einfacher anzusteuern als USB-Sticks. Das Problem ist das Du dafür den dicken USB Host Stack (plus etwas SCSI) brauchst, 42kB sind schon recht klein dafür. Zum Vergleich: Auf Cortex-M3 hatte ich einen SDHC Bootloader (SPI) in eine 4KB Page unterbringen können. Du hast IMHO nur die 2 Alternativen: - Redesign auf (Micro-)SDHC - Kauf der USB Host Lizenz
Danke für eure Beiträge. Ich habe ja einen USB-Bootloader noch mit der 16bit-Option kompiliert und der passt komplett ins Boot-Flash (eine Kopie des hex-Files habe ich schön gesichert), nur würde ich gerne in Zukunft den Bootloader ggf. anzupassen können. Die Option mit SD-Karte kommt für mich nicht in Frage. Danke aber trotzdem für den Gedanken. Ja, die lieben PLIB! Auch das neue Harmony v2.x generiert Source-Files mit PLIB, Memcopy und/oder ähnlichem. und motzt dann anschliessend beim compilieren, dass es diese Befehle nicht mehr unterstützt... Ich für mich: Ich bleibe bei Harmony v1.x und XC32 v1.40 - sollte ich das nicht mehr brauchen können, schaue ich über den Tellerrand, was es sonst noch an Mikrokontrollern von anderen Herstellern gibt. ps: Wenn man in Harmony v2.x das USB-Bootloader-Linker-File für die Zielapplikation generiert, aber den Bootloader in Hamony v1.x erstellt hat, funktioniert's nicht, weil in v.2.x andere Adressen verwendet werden - typisch Harmony :-(
:
Bearbeitet durch User
Moin, den ganzen Harmony-Mist haben die doch nur gemacht damit Lisa Müller aus Lüdenscheidt auch einen Microchip Controller programmieren kann, wozu sich auch mit Datasheets rumschlagen! Aber wehe man muß der bunten Klickerwelt unter die Motorhaube gucken...die Vorredner haben sowas von recht. Die Plib checken war mit dem Datasheet zusammen schon einfacher zu überblicken. Gruß Beast
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.