PowerPC的字节序问题
来源:互联网 发布:淘宝装修自定义源代码 编辑:程序博客网 时间:2024/06/05 04:04
因为以前一直接触的是x86和ARM,习惯了little endian。PowerPC采用大端模式。
存放的字节顺序对于大小端的区别是:Big Endian, 高字节(MSB)存放在低地址。Little Endian,低字节(LSB)存放在低地址。
0x12345678在大端和小端中的存放序列如下图所示:
从软件的角度看,不同端模式的处理器进行数据传递时需要考虑端模式的问题。互联网使用的网络字节顺序采用大端模式进行编址,这样大端模式处理器的字节序到网络字节序不需要转换,此时ntohs(n) = n, ntohl(n) = n;而小端模式处理器的字节序到网络字节必须进行转换,此时ntohs(n) = __swap16(n), ntohl = __swap32(n)。
驱动程序员大多比较关注register相关的东西,对于大小端模式而言,不同处理器的register bitlayout也不相同,比如对于32位register而言,PowerPC将其寄存器的最高位msb(most significant bit)定义为0,最低位lsb(least significant bit)定义为31。小端处理器正好相反,比如Intel的处理器。大小端寄存器bit layout区别如下图所示:
数据0x12345678写到大小端的register中如下图:
从数据总线角度而言,大端模式32位数据总线的msb是第0位, MSB是数据总线的第0~7bit,小端模式的32位数据总线的msb是第31位, MSB是数据总线的第31~24bit。
当不同端模式的处理器和外设互联时,IC的设计人员需要关注数据总线的bit序列问题。在实际应用中,并没有大端外设。
- PowerPC的字节序问题
- PowerPC的字节序问题
- 一般来说,x86 系列CPU 都是little-endian 的字节序,PowerPC 通常是Big endian
- 字节序的问题
- 字节序的问题
- 字节序的问题
- 关于字节序的问题
- 计算机的字节序问题
- 关于字节序的问题
- 网络字节序的问题
- 大小字节序的问题
- 网络字节序的问题
- PowerPC 平台 下 Linux rpm 包的一个安装问题
- 基于powerpc的uboot启动之硬件配置字问题
- powerpc 的外围接口
- PowerPC的MMU初始化
- PowerPC的使用
- 网络字节序问题的思考
- Map(一)之HashMap(java8)
- SQL group by分组查询
- HDFS 联盟和高可用性
- 【剑指offer】字符串的排列
- Quartz2D绘制字体和图形
- PowerPC的字节序问题
- Postgresql 同步流复制
- CocoaPods安装
- UVa 10106 Product
- 【iOS】网络操作与AFNetworking
- Same-origin security policy
- Qt学习之路(59): 编写跨平台的程序
- ioctl用法详解
- 在ListView中嵌套ListView的事件处理