Hallo, ich möchte einen Atmega 328p mit einem Bootloader austatten, damit ich ihn zukünftig per Bluetooth flashen kann. Dazu habe ich mir erstmal den Bootloader aus dem Wiki (http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung) angesehen. Nach dem Setzen der entsprechenden Fuses und der Anpassung der Sprungadressen funktioniert auch alles soweit. Der Bootloader wurde per ISP geflasht, anschließend wurde das angepasste HEX der Beispielapplikation über Putty an den Controller geschickt. Ebenfalls kein Problem. Ich habe jetzt allerdings eine deutlich größere Anwendung, die ich bisher per ISP geflasht habe und problemlos lief. Versuche ich dieses HEX nun per Bootloader auf den Mikrocontroller zu flashen funktioniert dies auch, allerdings bleibt der Bootloader dann beim Reset hängen und mein Programm wird nicht ausgeführt (weder Debug LED leuchtet, noch wird ein Text auf dem UART ausgegeben). Nach dem Flashen habe ich mir den Speicherinhalt wieder in ein HEX file heruntergeladen. Offenbar wird mein Programm irgendwann abgeschnitten. Die UART Übertragung habe ich nochmals überprüft, dort wird die komplette HEX Datei übermittelt. Ich brauche jetzt einen Ansatz wo ich anfangen kann nach dem Problem zu suchen. Muss ich bei meinem Code irgendetwas beachten, damit er "Bootloaderfähig" wird? Danke im Voraus Elektron
Die Größe des Programms wirst du ja berücksichtigt haben.
Elektron schrieb: > Hallo, > > ... eine deutlich größere Anwendung, ... > mein Programm irgendwann abgeschnitten. Die UART Übertragung habe ich > Ich brauche jetzt einen Ansatz wo ich anfangen kann ... Gerne. Wenn Dir solche Worte wie "irgendwann" oder "größere" aus der Tastatur flutschen, sollte das Deine Aufmerksamkeit erregen. In der Technik gibt es zwar einiges was nicht gemessen werden kann, aber man sollte immer schauen ob das in einem konkreten Fall auch zutrifft. Insbesondere in der Datenverarbeitung ist das eher selten. Also, wie groß ist die Anwendung? Wann genau scheint die Anwendung "abgeschnitten" zu werden? Und dann schaust Du mal, was in dem Artikel zu etwaigen Beschränkungen gesagt wird. Dann bist Du schon mal einen Schritt weiter. In der Analyse. Es kann gar nicht oft genug betont werden: Genaue Betrachtungen sind das A und O der Technik. Jede Oberflächlichkeit verhindert erfolgreiche Arbeit.
> Und dann schaust Du mal, was in dem Artikel zu etwaigen Beschränkungen gesagt wird. Ich denke damit zielst du auf das 64KB Problem ab. Da so ein Atmega 328p aber nur 32KB hat wird das wohl kaum ein Problem sein > Also, wie groß ist die Anwendung? avr GCC gibt dazu folgendes aus: [code]Device: atmega328p Program: 5766 bytes (17.6% Full) (.text + .data + .bootloader) Data: 1153 bytes (56.3% Full) (.data + .bss + .noinit)[code] Das Programm sollte damit nach meinem Verständnis auch nicht zu groß sein > Wann genau scheint die Anwendung "abgeschnitten" zu werden? Tja, wie erkläre ich die Stelle am besten? Soll ich dafür nur einen Auszug hochladen oder die gesamten Hex files?
Wieso das rad neu erfinden? Hab ich allerdings vor einigen Jahren das letzte mal benutzt. http://sourceforge.net/projects/kavr/
Tja, immer diese Konstruktiefe Hilfe hier im Forum. Stellt man die dümmsten Fragen ist das kein Problem, passt bei komplexeren Themen die Formulierung nicht, dann ist es schon vorbei. Lustig, dass hier keiner mehr auf die ursprüngliche Frage geantwortet hat, nachdem ich die einfachen Lösungen ausgeschlossen habe. Mir solls egal sein, ich habe meinen Bootloader fertig. Wer einen bluetooth bootloader braucht soll ihn sich selber schreiben. Ich werde mir nicht die mühe machen ihn hier hochzuladen
Elektron schrieb: > Program: 5766 bytes (17.6% Full) > (.text + .data + .bootloader) > > Data: 1153 bytes (56.3% Full) > (.data + .bss + .noinit)[code] > Das Programm sollte damit nach meinem Verständnis auch nicht zu groß > sein Oh, gerade mal 6kB. Das ist viel kleiner als ich aus deine Aussage >Ich habe jetzt allerdings eine deutlich größere Anwendung" erwartet hatte. Dann wird ein 32k oder 64k Überlauf wohl nicht das Problem sein. Die Info von dir fehlte aber im OP. >> Wann genau scheint die Anwendung "abgeschnitten" zu werden? > Tja, wie erkläre ich die Stelle am besten? Soll ich dafür nur einen > Auszug hochladen oder die gesamten Hex files? Nein, eher so was wie "immer nach exact 2kB", oder "Hm, unterschiedlich. Mal bricht er nach 1432 bytes ab, manchmal erst kurz vorm Ende". > Tja, immer diese Konstruktiefe Hilfe hier im Forum. Ja, die Tiefe der Hilfe lässt manchmal ein wenig nach; aber oft auch die Bereitschaft der Frager selbst mal ein bisschen Hirnarbeit zu leisten. Du hast einen Bootloader geschrieben womit du ein Problem hattest. Hast aber weder Infos zu dem Teil gegeben (z.B. Source Code!) noch Hinweise zu den Schritten die du selber schon unternommen hast um das Problem einzugrenzen. Dann kannst du hier auch keine bessere Hilfe erwarten als was schon geboten wurde.
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.