请问28X有没有16位高低字节交换的指令?

dang56 ( 楼主 ) 2018-6-14 08:46:01  显示全部楼层
本帖最后由 一只耳朵怪 于 2018-6-14 10:31 编辑

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

2个回复

szbliy 发表于 2018-6-14 08:53:27
下面链接提供了编译器的__byte() intrinsic函数(也就是汇编的MOVB指令)来单独访问一个字的高或低8位的功能:
http://processors.wiki.ti.com/index.php/Byte_Accesses_with_the_C28x_CPU
你可以通过它获取高低位后,定义一个简单的swap宏函数进行字节交换。
希望对你有帮助。
                                                                         If a post answers your question, please mark it with the "verify answer" button.
回复

举报 使用道具

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

举报 使用道具

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /9 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 粤ICP备14022951号-2 )

GMT+8, 2018-8-21 06:35 , Processed in 3.008745 second(s), 24 queries , Memcache On.

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表