This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

28335大小端问题



28335虽然是小端模式,但是因为它最小单位是16位,那么单字里依然是高位在前,所以如果我用SPI或UART与x86这类本身也是小端模式的U进行数据通讯,仍然需要进行字节交换,这个好麻烦,特别是的数据量达到40KB/s, 有没有什么比较好的解决方案,比如28X有没有16位高低字节交换的指令?没怎么用汇编,拜托不要让我自己翻资料

  • 下面链接提供了编译器的__byte() intrinsic函数(也就是汇编的MOVB指令)来单独访问一个字的高或低8位的功能:

    http://processors.wiki.ti.com/index.php/Byte_Accesses_with_the_C28x_CPU

    你可以通过它获取高低位后,定义一个简单的swap宏函数进行字节交换。

    希望对你有帮助。

  • 关于SPI,我提出的是一个错误的问题, 如果通讯两端都采用相同的16位传输协议,那么MSB和LSB在协议层都是相同的顺序,和CPU的字序无关,所以没有必要交换,特此纠正,免得误导大家