-
嵌入式编程:平台大小端存储差异解决办法
- 时间:2023-02-01 来源:大宝777游戏 人气:
本文摘要:关于大小末端存储的问题,在嵌入式研发里这个早就不是什么新鲜事儿了。作为开发者都具有很明晰的了解,在此就嵌入式研发中的大小末端问题,做到个非常简单的共享总结。 大端小端,是比较内存而言的。有关大小端的资料,互联网上一搜就一大堆的博文和百科知识点,这里就仍然赘述。
关于大小末端存储的问题,在嵌入式研发里这个早就不是什么新鲜事儿了。作为开发者都具有很明晰的了解,在此就嵌入式研发中的大小末端问题,做到个非常简单的共享总结。
大端小端,是比较内存而言的。有关大小端的资料,互联网上一搜就一大堆的博文和百科知识点,这里就仍然赘述。在工程项目中,必须处置大小末端差异的,主要经常出现在数据处理的过程中,少见的有: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类型指针。
本文关键词:嵌入式,大宝777游戏,编程,平台,大小,端,存储,差异,解决
本文来源:大宝777游戏-www.istanbulkariyermerkezi.com
相关文章
-
近日,据外媒报导,英国伦敦大学学院研究人员找到,与没参与艺术活动的人比起,间隔几个月就去博物馆、美术馆参观的人英年早逝风险减少31%。即使每...2023-02-01 04.02.01
-
前言 随着高清摄像机的用于更加多,如何自由选择适合的、符合监控整体网络架构性能的交换机也出了在高清监控系统前期方案制订、项目报价中具有很最...2023-01-31 04.01.01
-
粤港澳大湾区是国家打造出世界级城市群和积极参与全球竞争的最重要空间载体,是由广州、深圳、珠海、佛山、中山、东莞、肇庆、江门、惠州等九市及...2023-01-31 04.01.01
-
全数市面上的产品,慢差使技术大体有四种,即高通的QuickCharge版(如QC2.0、QC3.0),联发科版(PumpExpress和PumpExpressplus)、OPPO的VOOC技术以及相容QC2.0协议和...2023-01-29 04.01.01
-
高速的高性能尼龙3D打印机技术相继经常出现,在某些应用于场景下未来将会PK塑料。背景:据理解,中国一年塑料的零件产品就多达4000万吨,产值万亿元...2023-01-29 04.01.01