Forum: Mikrocontroller und Digitale Elektronik Prüfsumme über ganzen Flashspeicher in uC mit Banking (NEC 78k)


von Johnny B. (johnnyb)


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?

von Falk B. (falk)


Lesenswert?

@  Johnny B. (johnnyb)

>Möglichkeit, eine Prüfsumme über den ganzen Flashspeicher zu generieren?

Wo ist das Problem? Bank0 einschalten, Prüfsumme berechnen, CRC-Rest 
merken, Bank1 einschalten, Prüfsumme WEITERberechnen, ausgehend vom 
CRC-Rest, etc.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.