Forum: Mikrocontroller und Digitale Elektronik PIC32 interenen Flash mit char Daten beschreiben


von Klatec (Gast)


Lesenswert?

Hallo Zusammen

Mit der nachfolgenden Funktion kann man den internen Flash beschreiben 
aber nur mit INT Daten 0x00000000, ich möchte aber CHAR Daten 0x00 
schreiben. Ich habe auch schon versucht in der Funktion die Daten als 
char zu def., geht auch nicht.

NVMWriteWord_((void*)(NVM_PROGRAM_PAGE + BgEeAdr+4), 0xEF);

unsigned int NVMWriteWord_(void* address, unsigned char data)



Mir würde aber auch helfen wenn mir jemand sagen kann wie ich 8 char 
Daten
in ein INT wandeln kann.


z.B. 0xAA; 0xBB; 0xCC; 0xDD   in 0xAABBCCDD

Bitte. Danke.

Lg.
Johann K.

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

Klatec schrieb:
> Mir würde aber auch helfen wenn mir jemand sagen kann wie ich 8 char
> Daten
> in ein INT wandeln kann.

falls Dein 'unsigned int' auch wirklich 32 Bit breit ist,
1
result = (unsigned int)(aa<<24) | (unsigned int)(bb<<16) | (unsigned int)(cc<<8) | (unsigned int)dd;

mfg

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Klatec schrieb:
> Mir würde aber auch helfen wenn mir jemand sagen kann wie ich 8 char
> Daten
> in ein INT wandeln kann.
>
>
> z.B. 0xAA; 0xBB; 0xCC; 0xDD   in 0xAABBCCDD

Das sind vier, nicht acht. Und mehr passen in einen 32-Bit-Wert auch 
nicht 'rein.

von Roland H. (batchman)


Lesenswert?

Was baust Du eigentlich? Boot loader? EEPROM-Emulation im Flash? 
Partielles Flashen?

Das geht selbst im Zusammenhang mit 
Beitrag "PIC32 Speicher im Memoryfenster beobachten" nicht hervor.

Woher kommen NVMWriteWord_() bzw. NVMWriteWord(), und welcher Compiler 
ist im Einsatz?

von Klatec (Gast)


Lesenswert?

Hallo Roland

Die Funktion stammt aus einem Beispiel von Microchip siehe 
(32-bit-Peripheral-Library-Guide.pdf), diesen Compiler ver ende ich. 
mplabc32_v2_02a_windows_installer

@ Rufus Τ
ist natürlich klar das es nur 4 Byte sind.

Lg.
Johann K.

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.