Prüfsumme über ganzen Flashspeicher in uC mit Banking (NEC 78k)

OP #2758874
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren