Ja genau. Wobei ich ja eher für den MCP2515 Support wäre aber egal

Meine Frage ist halt nur ob man das vernünftig klein bekommt, so dass es bei einem Mega8 noch Sinn macht. Ich möchte ja nicht die hälfte des Flash dafür verwenden um evtl. mal über CAN updaten zu können.

Und dann muss man sich noch überlegen wie man die Übertragung usw macht. Eine bestimmte ID pro Knoten vielleicht mit der dann die Bytes übertragen werden? Die PC Software dazu sollte kein Problem sein. Man muss sich nur ein vernünftiges Protokoll überlegen.

Ich dachte mir das ungefähr so:
Eine Programmiernachricht wird an ein bestimmten Knoten geschickt:
dieser geht dann in eine Endlosschleife und der Watchdog macht daraufhin einen Reset damit wird der Bootloader Code gestartet.
Der Bootloader sendet nun per RTR eine Anfrage an den PC das er die neue Firmware empfangen möchte. Wenn der PC nicht innerhalb der Zeit X antwortet oder ein Paket schickt in dem steht, das er nix bekommt wird die normale Firmware gestartet.
Ansonsten beginnt auf der ID mit der auch das RTR kam die Übertragung. So kann der CAN Bus normal weiterlaufen, während ein Knoten geflasht wird. Theoretisch könnte der PC sogar viele Knoten gleichzeitig flashen. Man könnte per RTR ja vorher noch ne Firmware Version abfragen und wenn der PC ne neuere hat kommt die automatisch drauf.
Mit den RTR Paketen kann man sogar eine Flusskontrolle realisieren, so dass der Controller nur neue Daten bekommt, wenn er soweit ist.

Gruß Philipp