网站首页 > 文章精选 正文
在实际的嵌入式软件开发时,在数据传输或通信时经常要区分数据处理器的类型是大端处理器还是小端处理器。arm是小端,dsp是大端,电脑是小端,网络数据一般为大端。在两个不同大小端的处理器之间数据传输,数据在内存的存放顺序并没有变,不同大小端需要解读出同样的值,就需要进行大小端转化。
大端模式:高位字节存放在低地址中,低位字节存放在高地址中,是最直观的字节序。
小端模式:高位字节存放在高地址中,低位字节存放在低地址中。
以unsigned int value = 0x12345678为例,分别按照大端模式和小端模式存放在芯片中。
内存地址 | 0x00000001 | 0x00000002 | 0x00000003 | 0x00000004 |
大端模式 | 0x12 | 0x34 | 0x56 | 0x78 |
小端模式 | 0x78 | 0x56 | 0x34 | 0x12 |
再换一种图示:同样以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况,我们可以用unsigned char buf[4]来表示value。
不管是大端还是小端模式,我们在读取和存储数据的时候一定都是从内存的低地址依次向高地址读取或写入。
1.Byte Reversal模块
Byte Reversal功能:反转输入字中的字节顺序。
库:
Embedded Coder / Embedded Targets / Host Communication
输入数目 — 模块输入的数目
1 (默认) | 整数
指定模块输入的数目。该模块创建该数目的输入端口和输出端口。
每个输入端口映射到匹配的输出端口。输入 Port_1 接收到的数据通过
输出 Port_1 发送,依此类推。
应用场景描述
Byte Reversal 模块更改输入到该模块的数据中字节的顺序。当进程在使用不同端序的目标计算机之间进行通信时,例如在采用小端的 Intel处理器和其他大端处理器之间进行通信时,使用此模块。默认情况下,Texas Instruments 处理器是小端处理器。要在具有不同端序的处理器之间交换数据,在紧挨发送模块之前和紧挨接收模块后放置一个 Byte Reversal 模块。
注:反转字节顺序不会改变数据类型。输入和输出保留匹配的数据类型。
2.实例
此模型显示三个输入的字节反转。每条路径的输入端口和输出端口都匹配。
Byte Reversal模块的参数
3.参考内容
[1]https://ww2.mathworks.cn/help/ecoder/ref/bytereversal.html
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙
猜你喜欢
- 2025-07-21 [西门子PLC] 两个S7-1200之间实现Modbus TCP客户端和服务器通信
- 2025-07-21 谈谈西门子PLC中的字位变换(西门子plc的字和位)
- 2025-07-21 史上最全齿轮类型介绍及主要参数计算与画法详解
- 2025-07-21 机械设计中的尺寸标注(机械设计中的尺寸标注,看懂复杂机械图纸)
- 2025-07-21 FANUC 0iTF 车床编程 G90 车削锥度指令
- 2025-07-21 C语言验证大小端的几个方法(用c语言实现大小端的测试)
- 2025-07-21 机器人也要“减重”? 机械臂用上碳纤维复合材料,性能或大有提升
- 2025-07-21 揭秘通信协议设计的奥妙,作为面试官我都看蒙了
- 2025-07-21 新手攻略!入门ARM必须要理解的22个常用概念
- 2025-07-21 NPT 螺纹与英制螺纹的区别大揭秘(英制螺纹和npt)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)
- fmt.println (52)