• 大小端模式


      https://www.cnblogs.com/little-white/p/3236548.html

    一 大端模式就是高位存在低地址(看着顺序一致),例如0X1234,内存地址是0X4000的话,0x4000=0x12;0x4001=0x34;

    大端模式一般存在网络协议和MODBUS(先发高字节再发低字节)等中,符号位的判定固定为第一个字节,容易判断正负;C51也是大端模式。

    小端模式常存在于处理器中,如ARM中,强制转换数据不需要调整字节内容,如果要进行MODBUS打包数据则要进行高低字节交换。

    所以向eeprom中存入字节序按大端存储:keil下的u16先进行高低字节转换__REV16(A),然后进行强制类型转换拷贝写入;读出时先读到一个将u16数组地址强制转换字节指针中,然后进行对u16进行__REV16(A)转换。

    modbus协议栈自动会将大端序的字节流存储到小端模式的keil下的u16中,发送时会将小端模式的u16进行高低字节转换成大端序字节流发送。

    #define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8) | (( (uint16)(A) & 0x00ff) << 8))或者用专门的汇编指令:
    #define Little16toBig(A)  __REV16(A)

    大小端的判断:可以用将16bit数据强制按字节访问低字节内容,如果等于高位字节值则为大端,否则小端
           或者用共用体union来访问16bit和8bit内容,判断方法一样
    举例说明:u8 a[4]={0xc0,0xa8,0x1,0xfa};
    u8 b[2]={0x1234,0x5678};
    memcpy(b,a,4);//此时b[2]={0xac0,0xfa01};
    memcpy(a,b,4);//a[4]={0x34,0x12,0x78,0x56};
     



  • 相关阅读:
    软件体系架构会议纪要
    漫谈架构之阅读笔记02
    漫谈架构之阅读笔记01
    学习进度报告01
    以《淘宝网》为例,描绘质量属性的六个常见属性场景。
    软件架构师的工作方式
    软件体系架构课堂测试02
    系统安全——访问控制
    信息安全技术——物理环境与设备安全、虚拟专用网
    信息安全技术——防火墙、入侵检测技术
  • 原文地址:https://www.cnblogs.com/jieruishu/p/10893221.html
Copyright © 2020-2023  润新知