Hallo zusammen
Bin mit meinem Latein am Ende und wäre froh um Hilfe.
Ich muss bei einem NEC 78k Mikrocontroller eine Prüfsumme über das ganze
Flash hinweg berechnen.
Das Problem ist nun, dass der 78k ein 8-Bitter ist und die Flashgrösse
128kB; es muss also mit Banking gearbeitet werden.
Nun wollte ich einen Pointer deklarieren, welcher in die gebankten
Speicherbereiche zeigt und so auf dessen Inhalt zugreifen.
Nun kann ich jedoch keinen solchen Pointer deklarieren, da Pointer bei
diesem uC nur 16-Bit breit sind, ich jedoch 24-Bit benötige.
Eine Variable kann ich z.B. so in die Bank 2 legen:
1 | #pragma location = 0x028000
|
2 | const unsigned char BANK2_;
|
Die Bänke selber befinden sich jeweils im Adressbereich 0x8000...0xBFFF
und werden in 0x010000, 0x020000, 0x030000, etc. eingeblendet.
Sowas hier &BANK2_ gibt mir aber nur eine 16-Bit Adresse zurück, welche
natürlich ins Schilf zeigt.
Hat jemand eine Idee, wie ich das handhaben kann oder eine andere
Möglichkeit, eine Prüfsumme über den ganzen Flashspeicher zu generieren?