欢迎登陆金沙9001链接网!
9001cc金沙·(中国)官方网站

嵌入式编程:平台大小端存储差异解决办法

本文摘要:关于大小末端存储的问题,在嵌入式研发里这个早就不是什么新鲜事儿了。作为开发者都具有很明晰的了解,在此就嵌入式研发中的大小末端问题,做到个非常简单的共享总结。大端小端,是比较内存而言的。 有关大小端的资料,互联网上一搜就一大堆的博文和百科知识点,这里就仍然赘述。

金沙9001链接

关于大小末端存储的问题,在嵌入式研发里这个早就不是什么新鲜事儿了。作为开发者都具有很明晰的了解,在此就嵌入式研发中的大小末端问题,做到个非常简单的共享总结。大端小端,是比较内存而言的。

有关大小端的资料,互联网上一搜就一大堆的博文和百科知识点,这里就仍然赘述。在工程项目中,必须处置大小末端差异的,主要经常出现在数据处理的过程中,少见的有:1.数据包解析和组包2.数据发送和参数传递数据包解析和组包数据包解析和组包的过程,可以参照《嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议》该文中的“设计协议帧结构”部分,该部分内容谈到把uint16_t字段的数据用于2个uint8_t类型的数据表示,目的数据传输时没差异。但是,有些模块是别人设计好的,作为应用于者你不能“顺从”地用于。

在C语言里可以利用强迫切换来构建对数据类型的切换,但是强转的结果依赖当前平台大、小端情况的。如下的类型强迫切换,将uint8_t类型buf中的数据流强迫改以uint16_t类型后放入赋值给tmp_dat变量,根据仔细观察找到buf中的数据流被每2个字节“人组”成一个uint16_t类型的数据,Debug过程图片如下:代码中的p1是一个uint16_t类型指针,指向uint8_t类型数据流的tmp_stream,此处的指针赋值就必须用于强迫切换。

在for循环内以p1指针为“起点”循环做到位移放入数据,并且每次位移uint16_t类型的数据宽度,因为p1是uint16_t类型指针。


本文关键词:金沙9001链接,嵌入式,编程,平台,大小,端,存储,差异,解决

本文来源:金沙9001链接-www.akelapp.com

餐饮项目推荐

苍井寿司加盟
苍井寿司加盟
投资额:3万
热度:
我要加盟
新麻蒲烤肉加盟
新麻蒲烤肉加盟
投资额:1-3万
热度:
我要加盟
酸小七酸菜鱼加盟
酸小七酸菜鱼加盟
投资额:1-3万
热度:
我要加盟
鲁二哥卤肉饭加盟
鲁二哥卤肉饭加盟
投资额:1-3万
热度:
我要加盟
优粮生活快餐加盟
优粮生活快餐加盟
投资额:10-20万
热度:
我要加盟
公司动态排行榜
  • 1小趣茶茶饮加盟200
    小趣茶茶饮加盟
    投资额:2-5万
    热度:
    查看详情>>
  • 2顶膳牛排加盟195
    顶膳牛排加盟
    投资额:1-3万
    热度:
    查看详情>>
  • 30夏7度奶茶店加盟194
    0夏7度奶茶店加盟
    投资额:3万
    热度:
    查看详情>>
  • 4乐速速奶茶加盟192
    乐速速奶茶加盟
    投资额:1-2万
    热度:
    查看详情>>
  • 5中卫披萨加盟192
    中卫披萨加盟
    投资额:1-3万
    热度:
    查看详情>>
  • 6小蛮螺网红螺蛳粉加盟192
    小蛮螺网红螺蛳粉加盟
    投资额:1-2万
    热度:
    查看详情>>
  • 7夏日沫沫茶加盟185
    夏日沫沫茶加盟
    投资额:1-2万
    热度:
    查看详情>>
    • 加盟指南
    • 经营技巧
    • 餐饮营销
    首页 |公司简介|法律声明|正在咨询|公司动态|联系我们