Forum: PC-Programmierung Zeigertausch auf einem Embedded System


von coder (Gast)


Lesenswert?

Guten Morgen,

auf einem Mikrocontroller werden an einer bestimmten Stelle Daten von 
der Uart an die Ethernet Schnittstelle (Udp-Kommunikation) übergeben. 
Dafür wird die memcpy Funktion eingesetzt. Den Kopiervorgang könnte doch 
durch einen Zeigertausch beschleunigt werden.
1
uint8_t  *pData     // Quelle
2
uint16_t DataLen    // Datenlänge
3
uint8_t  Data[500]; // Ziel Puffer
4
5
memcpy( Data, pData, DataLen);

Wie wird ein Zeigertausch realisiert?

von Nop (Gast)


Lesenswert?

coder schrieb:
> Den Kopiervorgang könnte doch
> durch einen Zeigertausch beschleunigt werden.

Wozu? Wenn die Daten ohnehin nicht kopiert werden, übergib einfach den 
Zeiger und gut.

von coder (Gast)


Lesenswert?

Die Daten sollen in pData kopiert werden.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

coder schrieb:
> Die Daten sollen in pData kopiert werden.

Hä? Das ist laut deinen Angaben die Quelle.

Warum ließt du dir den Text deiner Hausaufgabe und das 
Unterrichtsmaterial nicht nochmal genau durch und machst einen 
ernsthaften Versuch deine Hausaufgabe selber zu lösen?

von Nop (Gast)


Lesenswert?

coder schrieb:
> Die Daten sollen in pData kopiert werden.

Wenn Du kopieren willst, wirst Du kopieren müssen.

von pointerisnotanarray (Gast)


Lesenswert?

Es werden bestimmt mal wieder neue Daten kommen. Das Gebilde nennt sich 
Wechselpuffer.

von Nop (Gast)


Lesenswert?

pointerisnotanarray schrieb:
> Das Gebilde nennt sich Wechselpuffer.

Dazu bräuchte man aber wenigstens zwei. Der Op möchte das aber mit einem 
machen.

von coder (Gast)


Lesenswert?

Es sind zwei Puffer. Nach einer kurzen Zeit bleibt der Controller 
hängen.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Nop schrieb:
> Dazu bräuchte man aber wenigstens zwei. Der Op möchte das aber mit einem
> machen.

Der möchte das nicht machen, der muss das (oder etwas anderes) machen. 
Viel Bock seine Hausaufgabe selber zu machen hat er aber nicht. Mehr als 
die Aufgabenstellung und einen zusätzlichen unsinnigen Satz zu posten 
hat er bisher nicht geschafft.

von fft (Gast)


Lesenswert?

lassen wir ihn doch mal etwas nachdenken...

von pointerisnotanarray (Gast)


Lesenswert?

Nop schrieb:
> pointerisnotanarray schrieb:
> Das Gebilde nennt sich Wechselpuffer.
>
> Dazu bräuchte man aber wenigstens zwei. Der Op möchte das aber mit einem
> machen.

Eröffnungspost gelesen? Kopieren, memcpy, ... ?

von MaWin (Gast)


Lesenswert?

coder schrieb:
> Nach einer kurzen Zeit bleibt der Controller
> hängen.

Dann gibts wohl einen Fehler im Programm.

von Pandur S. (jetztnicht)


Lesenswert?

Ein paar Konzepte fehlen auch noch. So wird das nichts. Ich denke nicht 
dass memcpy von einem Port zu RAM geht, kann mich aber taeuschen.

: Bearbeitet durch User
von Rene K. (xdraconix)


Lesenswert?

Was ist es denn für ein MC, hat er vielleicht DMA?!

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich würde auch blaue nehmen

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.