Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

FLSUN SR STM32F407 Mikrocontroller springt nicht mehr in Marlin-Firmware

geschrieben von alex939 
FLSUN SR STM32F407 Mikrocontroller springt nicht mehr in Marlin-Firmware
16. February 2022 12:32
Hallo zusammen,
ich arbeite derzeit an einem Projekt, in das der FLSUN SR eingebunden ist. Die Firmware dieses Druckers muss bearbeitet werden.
Im SR sind ja wohl diverse Motherboards verbaut. In meinem Fall ist es das Mks Robin Nano v3 mit einem STM32F407VGT6 an Bord.
Die Sourcen findet man hier.
Ich konnte bereits wenige Veränderungen im Code vornehmen. Konkret habe ich in der Config.h die maximale und minimale Betttemperatur abgeändert, da ich den Sensor anderweitig verwenden werde.
Das hat auch bei den ersten Flashversuchen ohne Probleme funktioniert. Geflasht habe ich sowohl per STM32CubeProgrammer als auch über PIO unter Visual Studio Code.
Beides funktionierte. Jedoch kam es bei einem Flashversuch im STM32CubeProgrammer dazu, dass mir eine Fehlermeldung geworfen wurde, die da hieß: "Core locked up".
Dies war scheinbar nicht einfach ein fehlerhafter Flashversuch, sondern ich habe irgendeinen Fehler begangen, der mich ab diesem Zeitpunkt nicht mehr zuverlässig flashen ließ.
Das heißt mein aktueller Stand ist jetzt: Ich flashe per STM32CubeProgrammer oder per PIO die jungfräuliche Firmware ohne meine Änderungen. Die Flash-Startadresse lautet 0x0800C000. Am Ende des Flashvorgangs findet ein Reset statt, der Drucker läuft ganz normal.
Nehme ich dem Controller jetzt die Spannung weg und lege wieder Spannung an, kann der Controller nicht mehr aufstarten. Es ist ersichtlich, dass der Controller in ein Nirvana im Flash-Speicherbereich springt (irgendwo ganz am Ende) und dann auch nichts mehr tut.
Habe ich eine Bootloaderkonfiguration zerstört? Ich habe das so verstanden, dass Marlin sowieso einen Bootloader mit an Bord hat.
Falls noch mehr Infos benötigt werden: Die werde ich morgen gerne zur Verfügung stellen inkl. Bilder
Re: FLSUN SR STM32F407 Mikrocontroller springt nicht mehr in Marlin-Firmware
17. February 2022 02:38
Hallo zusammen. Das Problem hat sich "gelöst". Der Fehler der mir unterlaufen ist: In der PIO-Config ist ein board_build.offset und eine board_upload.offset_address angegeben. Diese standen ursprünglich auf 0x0800C000. Dummerweise habe ich per STM32CubeProgrammer das binary aus Versehen an die Adresse 0x08000000 geflasht und damit wohl einen Bootloader von FLSUN übergebügelt. Tja, blöd gelaufen. Wenn ich board_build.offset und board_upload.offset_address jetzt so angebe, dass in 0x08000000 geflasht werden soll, funktionierts wieder.

***UPDATE***
Der Bootloader ist jetzt auch ausfindig gemacht. Der ist hier zu finden

1-mal bearbeitet. Zuletzt am 17.02.22 06:10.
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen