Hallo, hab hier im Forum etwas herumgesucht, aber bin noch nicht so ganz fündig geworden. Möchte die Applikation und Bootloader im Projekt zusammenfassen. Also hätte folgendes vor: a) Eine Funktion (einzelne oder mehrere C-Funktionen für Bootloader) soll so weit wie möglich am Ende des Flash platziert werden. Der Bootloader braucht keine Interrupts, macht also alles mit Polling. --> Wahrscheinlich durch Declaration einen neuen Section im Source und Angabe im Linker? b) Der Resetvektor soll fix auf diese Funktion 'a)' hüpfen --> mit declaration eines Pointers auf diese Funktion? c) Der eigentliche Code (.text) kann dann den Rest im Flash ausfüllen, wobei die Startroutine immer an fixer Stelle sein muß (dort soll ja der Bootloader dann nach vollendeter Tat landen)
Hi, Günther, Ja, wenn ich Dich richtig verstehe, dann möchtest Du ein Programm entwerfen, mit main() in der Application Flash Section und Bootloader-Funktion (also ohne eigenes main() in der Boot Flash Section. Für unmöglich halte ich das nicht. Mein nächster Ansatz, dies weiter zu denken, wäre das Betrachten der Sections, die der Compiler einrichten kann. Als geborener Projektmanager denke ich aber zeitlich ungekehrt - ich denke erst den letzen Schritt und dann den zweitletzten, drittletzten. Und fürchte ich mich vor dem Debuggen. Mit Atmel Studio habe ich das Debuggung in der Bootloadflasch-Section nie in die Gänge gebracht. Ich denke erst weiter, wenn Studio mehr als eine Section beherrscht. Ciao Wolfgang Horn
Man kann doch den Bootloader zunächst mal als ganz normales Programm im Application-Bereich entwickeln und debuggen. Erst wenn alles fertig ist, plaziert man ihn in den Bootloader-Bereich, und dann ist auch seine main() dort, denn da gehört sie m.E. auch hin.
Hallo, gleich mal danke für die Posts. Ich möchte gar keine Bootloadersection verwenden, also vollen Zugriff auf den kompletten Flash in den Config Registern zulassen. Der Bootloader (also die Funktion) selbst muß aufpassen, daß er sich nicht wegflashed. Das Debuggen sollte dann auch funktioneren, ist ja alles ein Programm. Habe so einen Bootloader auch schon auf einer Menge PICs mit HiTech und Assembler gemischt erstellt, daß funzt prima. Wahrscheinlich kann man mit attrib o.ä. einer Funktion eine neue Section zuweisen und diese dann beim Linken an eine spezielle Stelle platzieren lassen. Dann müßte man die .start section im Reset Vektor umdrehen und diese auf den Bootloader zeigen lassen. Der Bootloader muß dann wieder zurück in die .start section hüpfen.
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.