Forum: Digitale Signalverarbeitung / DSP / Machine Learning 32 Bit DSP und 16 Bit Flash


von Owen S. (senmeis)


Lesenswert?

Hi,

ich möchte ein paar Daten aus einem 32 Bit DSP über das EMIF Interface 
an ein 16 Bit Flash schreiben. Bei der Programmierung soll man aufpassen 
wie 32 Bit und 16 Bit angepasst werden. Mit folgendem Code möchte ich 
das Schreiben schaffen:
1
#define BASE_ADR 0x90000000
2
for (i = 0; i < BufferCnt; i++){
3
  *(Uint16 *)(BASE_ADR + Start_Adr + 4*i) = Data_For_Write;
4
  }

Die Frage ist, ob das 4*i oder 2*i sein sollte?

Senmeis

von Strubi (Gast)


Lesenswert?

Moin,

> #define BASE_ADR 0x90000000
> for (i = 0; i < BufferCnt; i++){
>   *(Uint16 *)(BASE_ADR + Start_Adr + 4*i) = Data_For_Write;
>   }
>
> Die Frage ist, ob das 4*i oder 2*i sein sollte?

2*i, aber mein Vorschlag:
1
uint16_t *b = (uint16_t *) (BASE_ADR + StartAdr);
2
for (i = 0; i < BufferCnt; i++) {
3
    *b++ = data; // oder b[i] = data;
4
}

Das liest sich leichter, und der C-Compiler tut den Rest der 
Adressrechnung.

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.