le32_to_cpu 和cpu_to_le32 大小断对齐

A53 是大端对齐的,但是其中一个spi的slave是小端对齐的。

看一下 le32_to_cpu 的实现:

/* little_endian.h */

#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
#define __le32_to_cpu(x) ((__force __u32)(__le32)(x))

/*big_endian.h*/

#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
#define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
指向两个文件,一个little_endian是小断对其的,也就是cpu是小端转成你需要的小端,本身都是小端,就不需要转换。

你cpu是大端对齐的,但是要转换成小端的就需要swap。

使用此函数需要注意当前操作系统处于哪种模式。
————————————————
版权声明:本文为CSDN博主「dachunfree」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dachunfree/article/details/122472842

posted on 2023-02-27 21:46  lydstory  阅读(227)  评论(0编辑  收藏  举报

导航