Forum: Mikrocontroller und Digitale Elektronik Bootloader über CAN


von Steffen Hausinger (Gast)


Lesenswert?

Hallo allerseits,

ich programmiere gerade einen CAN-Knoten, dem ich einen Bootloader 
verpassen möchte. Als µC kommt ein Tiny45 zum Einsatz, zusammen mit 
einem MCP2515 + Treiber für die CAN-Schnittstelle.

Ich habe in meiner Applikation für den MCP2515 Routinen geschrieben, mit 
denen ich den CAN-Bus steuern kann (Senden, Empfangen, interne Register 
schreiben etc.).

Nun ist es ja aber so, dass ich diese Routinen auch für den Bootloader 
brauche! Also sowohl einmal da als auch einmal in der Applikation. Wenn 
ich die Routinen jetzt in den Bootloader implementiere und damit 
ausserhalb der Applikation - wie kann ich dann von der Applikation aus 
drauf zugreifen? Die beiden sind doch getrennt voneinander und die 
Applikation kennt die Routinen des Bootloaders nicht :-( Umgekehrt ist 
das Problem das Gleiche...

Kennt jemand eine Lösung?

Viele Grüße,
Steffen

von Beeblebrox (Gast)


Lesenswert?

Üblicherweise sind die CAN-Routinen dann sowohl im Bootloader als auch 
in der Applikation implementiert. Die kommen sich auch nicht ins Gehege, 
da nach dem Anschalten erstmal der Bootloader läuft. Dieser guckt ob 
CAN-Aktivität da ist die ihn z.B. dazu veranlasst etwas zu laden. Wenn 
nicht, beendet sich der Bootloader selbst und startet die Applikation.

von MNR (Gast)


Lesenswert?

Bei meinem CAN-BootLoader ist es auch so, dass die Routinen 2mal 
vorhanden sind. Das ist solange kein Problem, wie ich noch Platz für 
meine Applikation habe.

Grundsätzlich könnte man allerdings über eine Funktionspointer-Tabelle 
von der Applikation aus Routinen im Bootloader benutzen. Im GCC Forum 
gibts ein paar Anregungen zu diesem Thema.

Grüße, Matthias

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
Noch kein Account? Hier anmelden.