打印
[嵌入式linux]

咨询linux下一个大端小端对齐的问题

[复制链接]
900|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
5
chengchenz| | 2014-8-13 11:52 | 只看该作者
本帖最后由 chengchenz 于 2014-8-13 11:58 编辑
原野之狼 发表于 2014-8-13 11:15
这个版块几成不毛之地了,所以想有人回答是很难的一件事。

版块分得太细,把人都分散了,很多内容知道的人也看不到。

使用特权

评论回复
6
原野之狼| | 2014-8-13 12:47 | 只看该作者
chengchenz 发表于 2014-8-13 11:52
版块分得太细,把人都分散了,很多内容知道的人也看不到。

想学linux,看我签名吧~

使用特权

评论回复
7
zook0k|  楼主 | 2014-8-13 13:14 | 只看该作者
谢谢chengchenz,晚上回去查查这个文件。
只是移植一小段代码,不是移植linux,所以这些符号的定义也需要在linux上找到并且放在自己的系统里。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

233

帖子

2

粉丝