Originally Posted by
easone
Let me make sure I understand the latest issue. You have an array of 16 bit pixels, which is stored in memory as little-endian bytes {LSB[0], MSB[0], LSB[1], MSB[1], LSB[2], MSB[2], LSB[3], MSB[3], ...}. When these bytes are copied to the FlexIO SHIFTBUF, they are shifted out in little-endian order as LSB[0], MSB[0], LSB[1], MSB[1], LSB[2], MSB[2], LSB[3], MSB[3] etc. But your screen needs to receive them in big-endian order MSB[0], LSB[0], MSB[1], LSB[1], MSB[2], LSB[2], MSB[3], LSB[3] etc.
Using SHIFTBUFBYS swaps the bytes but also swaps pairs of pixels giving you MSB[1], LSB[1], MSB[0], LSB[0], MSB[3], LSB[3], MSB[2], LSB[2] etc. I suppose that SHIFTBUFHWS doesn't work either because it swaps half words without swapping bytes within half words giving you LSB[1], MSB[1], LSB[0], MSB[0], LSB[3], MSB[3], LSB[2], MSB[2] etc. Is that right?