Vermutlich simpel, aber komme gerade nicht drauf: es geht um rechenzeit-optimiertes Kopieren von Buffern.
Gegegeben ist ein größerer uint8_t-Buffer der prozesssicher in einem Mehrkern-uC als Ringbuffer mit 16 Bit-Wörter gefüllt wird. Zyklisch werden bei ausreichendem Füllstand wieder 16-Bit-Werte entnommen.
Stark vereinfacht und initial befüllt in etwa so:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
So wie im Beispiel funktioniert die Sache, aber geht das nicht effizienter ohne schieben und addieren? Also direkt aus dem 8 Bit Buffer zwei Wörter zu einem 16 Bit Wort kopieren?
Muss man den Endian-Mode beachten, letztlich läuft das auf einem ARM. Wie sähe der C-Syntax dafür aus?