社区导航

 

搜索
查看: 4258|回复: 5

arm的小端模式如何转为大端模式

[复制链接]

88

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 00:32 | 显示全部楼层 |阅读模式
比如我U8 firmware_data[128];firmware赋值{0,22,1e,4d,。。。。。。。e3}
U32 *ptr=(U32 *)&firmware_data[0];
我用的arm9,读出来ptr内的数据是4d1e220格式,怎么变成02214d即大端模式?用htonl吗,怎么用?
谢谢啊
此帖出自ARM技术论坛

97

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 08:37 | 显示全部楼层
试试:

  1. ;
  2. U32 datab = htonl(datal);
  3. U32 *ptr = (U32 *)datab;
复制代码

回复

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 08:46 | 显示全部楼层
  1. );
  2. U32 datab = htonl(datal);
  3. U32 *ptr = (U32 *)datab;
复制代码

回复

使用道具 举报

89

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 09:06 | 显示全部楼层
hontl可以用。既然确定小转大,为什么不直接移位呢?

回复

使用道具 举报

90

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 10:24 | 显示全部楼层
引用 1 楼 morris88 的回复:
试试:


C/C++ codeU32 datal = *(U32 *)&firmware_data[0];
U32 datab = htonl(datal);
U32 *ptr = (U32 *)datab;


顶!

回复

使用道具 举报

103

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2009-5-13 13:27 | 显示全部楼层
不错,不过我已经用另外种方法把要写入的数据先转换顺序了,不过夜试试你的

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-24 10:36 , Processed in 0.208700 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表