EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
大端模式:低位字节存在高地址上,高位字节存在低地址上 7 r5 K7 `8 Q/ T! X
小端模式:高位字节存在高地址上,低位字节存在低地址上
+ f: o8 v0 b1 v' G( }! i$ F![]() : a+ _; J' _' F, ^" O
STM32属于小端模式,简单的说,比如u32 temp=0X12345678;& p& d" i- n- K- F) L% U
假设temp地址在0X2000 0010.+ l/ [5 i+ n$ }# l
那么在内存里面,存放就变成了:( t" a$ Z6 N2 D/ r* J! `8 Y3 ?& I
地址 | HEX |
) u4 H: O. o- S( S% I" e% O0 u0X2000 0010 | 78 56 43 12 |
5 s9 U7 l8 R& J, C% X6 G& e5 M. i# x! F9 r; o q3 P
CPU到底是大端还是小端,可以通过如下代码测试:
. \2 B1 [. r8 ^! {) \3 _
0 l# ^# c- u$ f) A+ A& S% q |//CPU大小端 //0,小端模式;1,大端模式. static u8 cpu_endian; 7 o6 R$ F9 W2 C) X0 j
//获取CPU大小端模式,结果保存在cpu_endian里面 void find_cpu_endian(void) { int x=1; if(*(char*)&x==1)cpu_endian=0; //小端模式 else cpu_endian=1; //大端模式 } ; v+ r. u) b: ?1 K' l
以上测试,在STM32上,你会得到cpu_endian=0,也就是小端模式. 小端模式的测试,一般arm都默认是小端方式 来看看大端模式的测试: 4 `! O/ o! e, ^/ `: v
|