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