Hallo zusammen,
ich habe neuerdings ein Problem mit zwei Prototypen-Boards mit ATSAMD51
Controllern. Die zwei Boards habe ich seit geraumer Zeit in Benutzung
und sie haben einwandfrei funktioniert. Nun gab es folgenden Ablauf:
- Durch einen Programmfehler in der Firmware-Update-Routine wurde ein
paar mal der gesamte Flash speicher durch folgende Routine gelöscht. Die
Variable nblocks hatte dabei unbeabsichtigterweise Werte im Bereich
+-32768 angenommen...
1 | for(int i=0; i<=nblocks; i++)
|
2 | {
|
3 | NVMCTRL->ADDR.reg = Startaddress_bank_B + i * NVM_blocksize;
|
4 | NVMCTRL->CTRLB.reg = 0xa500 | NVMCTRL_CTRLB_CMD_EB;
|
5 | while(!NVMCTRL->STATUS.bit.READY);
|
6 | }
|
- Nachdem dieser Fehler gefunden und beseitigt wurde, wollte ich die
neuen Features zum Programm hinzufügen und diese per Debugger testen.
Hierzu wollte ich wie immer das Microchip-Studio und den Atmel ICE
Programer nutzen. Wenn ich den grünen "Play"-Button betätige, kommt nun
aber nur noch die Fehlermeldung: "Lauch Failed. Error: Error reported by
NVM controller."
- Das Schreiben von neuen Programmen ins Memory funktioniert noch.
Debuggen lassen sich die beiden Boards jedoch nicht mehr.
Hat jemand ne Idee wie ich das Debugg-Feature wieder zum Leben erweckt
bekomme?
Anbei die Fuses/Userwords von einem der beiden Boards.
Viele Grüße und besten Dank,
Fabian