[嵌入式linux] 咨询linux下一个大端小端对齐的问题

[复制链接]
1391|6
 楼主| zook0k 发表于 2014-8-13 09:39 | 显示全部楼层 |阅读模式
看源码时候看到如下符号,只知道是设置对齐和大小端的方式,没有找到相应的定义,不知道在哪里定义的:
le16_to_cpu
get_unaligned
__le16

部分代码如下:
意思是从(__u8 *)start地址取一个16位长度的数据,地址增长2个字节。
(__u8 *start, __u8 *end, struct hid_item *item
    case 2:
            if ((end - start) < 2)
                return NULL;
            item->data.u16 = le16_to_cpu(get_unaligned((__le16*)start));
            start = (__u8 *)((__le16 *)start + 1);
            return start;

详细代码见这里:
http://www.cnblogs.com/sdphome/archive/2011/09/29/2195799.html

想移植这块的话,这里的对齐,大小端该怎么弄?
谢谢诸位的帮助。
原野之狼 发表于 2014-8-13 11:15 | 显示全部楼层
这个版块几成不毛之地了,所以想有人回答是很难的一件事。
 楼主| zook0k 发表于 2014-8-13 11:43 | 显示全部楼层
帮我移植到一个人气比较高的版块吧,版主大人,谢谢!
chengchenz 发表于 2014-8-13 11:51 | 显示全部楼层
kernel的头文件中有定义 include/linux/byteorder/
一般人移植不用操心这个吧,直接用这几个定义的好的宏就行.
除非你是在为一个全新的CPU写芯片级支持包。

评分

参与人数 1威望 +3 收起 理由
zook0k + 3

查看全部评分

chengchenz 发表于 2014-8-13 11:52 | 显示全部楼层
本帖最后由 chengchenz 于 2014-8-13 11:58 编辑
原野之狼 发表于 2014-8-13 11:15
这个版块几成不毛之地了,所以想有人回答是很难的一件事。

版块分得太细,把人都分散了,很多内容知道的人也看不到。
原野之狼 发表于 2014-8-13 12:47 | 显示全部楼层
chengchenz 发表于 2014-8-13 11:52
版块分得太细,把人都分散了,很多内容知道的人也看不到。

想学linux,看我签名吧~
 楼主| zook0k 发表于 2014-8-13 13:14 | 显示全部楼层
谢谢chengchenz,晚上回去查查这个文件。
只是移植一小段代码,不是移植linux,所以这些符号的定义也需要在linux上找到并且放在自己的系统里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

233

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部