Hallo, gibt es beim Cortex-M3 STM32F103 Prozessor auch eine Startfolge, anhand der man erkennt ob es sich um ein valides Programm handelt? Weiß jmd wie diese aussehen muss? Möchte vor dem Start des Programms (aus einem Bootloader heraus) nachschauen, ob es sich um einen gültiges Programm handeln kann. Beim ARM gibt es z.B. die Startvektoren, die u.a. auch die Größe des Images / Programms angeben... Gruß Bernd
Du programmierst doch den Bootloader auch selber. Was hindert dich daran, einfach selber vorne einen Header dranzuhängen, den zu prüfen, und dann den Rest zu starten? :)
Markus E. schrieb: > Du programmierst doch den Bootloader auch selber. Was hindert dich > > daran, einfach selber vorne einen Header dranzuhängen, den zu prüfen, > > und dann den Rest zu starten? :) das erste Programm springt ja zur Startadresse vom zweiten Programm, welches als separates Programm im Flash gespeichert wird durch die Entwicklungsumgebung; der Anfang dieses Programms ist bei den ARMs immer gleich (bei den Cortex-M3 bin ich mir nicht sicher... die beiden Flashbereiche sehen unterschiedlich aus); einen Header kann ich nicht vor diesen Code setzen.
Bernd Schuster schrieb: > Markus E. schrieb: >> Du programmierst doch den Bootloader auch selber. Was hindert dich >> daran, einfach selber vorne einen Header dranzuhängen, den zu prüfen, >> und dann den Rest zu starten? :) > > das erste Programm springt ja zur Startadresse vom zweiten Programm, > welches als separates Programm im Flash gespeichert wird durch die > Entwicklungsumgebung; Du definierst eben irgendeine magic number, die an einer festen Adresse in Deinem Image liegt. Die wird dann vom Bootloader abgefragt. > der Anfang dieses Programms ist bei den ARMs immer gleich Das wäre mir neu. Wenn man immer den mitgelieferten Reset Handler seiner Lieblings-IDE für einen MCU Hersteller verwendet, dann ist kann das schon sein. Ansonsten gibt es da unzählige Varianten, genau wie beim Cortex-M3. Letzterer verwendet allerdings eine andere Vektortabelle, so dass selbst innerhalb der o.g. Randbedingungen eine gewisse Vielfalt auftritt. > (bei den Cortex-M3 bin ich mir nicht sicher... die beiden Flashbereiche > sehen unterschiedlich aus); einen Header kann ich nicht vor diesen Code > setzen. 1. Klar kannst Du. Siehe Anleitung des Linkers, bzw diverse Compilererweiterungen 2. Muss ja nicht vor dem Code liegen, solange die Adresse (oder offset) bekannt ist. Gruß Marcus
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.