Hallo,
ich experimentiere gerade mit einem CH32V307 Controller und habe dabei
Probleme mit dem Reset Handler, wenn ich den Flashbereich ändere.
Ich habe den Flash (im LD Script) um 0x2000 verschoben. Im Map File
sieht auch alles gut aus. Der Reset Handler bleibt aber beim kopieren
der Daten von Flash in RAM hängen oder so (Es funktioniert nichts mehr)
Der Reset Handler ist hier:
https://github.com/openwch/ch32v307/blob/main/EVT/EXAM/SRC/Startup/startup_ch32v30x_D8C.S#L348-L358
Wenn ich Zeile 355 (sw t0, (a1)) auskommentiere, läuft die Applikation
prinzipiell wieder (wenn auch nicht ganz korrekt.
1 | 0x0000000020000000 PROVIDE (_data_vma = .)
|
2 | 0x0000000000005d94 PROVIDE (_data_lma = .)
|
3 | 0x0000000020000088 PROVIDE (_edata = .)
|
Warum scheitert das kopieren der Daten hier? Komme bei dem Problem
einfach nicht weiter.
P.S.
Was ich auch noch nicht ganz verstehe ist das im Linker File:
1 | >FLASH AT>FLASH
|
2 | >RAM AT>FLASH
|
Was macht das AT>FLASH (vor allem bei RAM)?