EDA365电子论坛网

标题: ARM CPU大小端 [打印本页]

作者: geronimo123    时间: 2021-6-8 11:07
标题: ARM CPU大小端
ARM CPU大小端:
大端模式:低位字节存在高地址上,高位字节存在低地址上
0 \' I1 f+ K: ^$ C小端模式:高位字节存在高地址上,低位字节存在低地址上
4 M: d( Z2 L9 a+ B. _$ n5 h
5 D4 p6 i2 g7 h" G2 l
STM32属于小端模式,简单的说,比如u32 temp=0X12345678;3 a6 Z5 b8 M3 S& F; k
假设temp地址在0X2000 0010.
8 M5 E/ {  q+ r4 o; o$ ~+ V那么在内存里面,存放就变成了:0 i+ s6 A2 f6 K2 Q1 O/ x
地址              |            HEX         |
4 _* e& J) F) t* l  r3 h2 _  }0X2000 0010  |  78   56   43  12  |- C9 _  G# C# X7 _- B

: K. I! n1 ^/ ?& I8 [. SCPU到底是大端还是小端,可以通过如下代码测试:
+ o+ Z1 o4 o: |* x  U1 y
' y  H' I* t/ `! Y
//CPU大小端
//0,小端模式;1,大端模式.
static u8 cpu_endian;
1 L) c  c0 ^# ?* G5 M
//获取CPU大小端模式,结果保存在cpu_endian里面
void find_cpu_endian(void)
{
int x=1;
if(*(char*)&x==1)cpu_endian=0; //小端模式
else cpu_endian=1;    //大端模式  
}
& m( |* f( G- G" U- g5 u
以上测试,在STM32上,你会得到cpu_endian=0,也就是小端模式.
小端模式的测试,一般arm都默认是小端方式
来看看大端模式的测试:

. K$ \5 b; w0 T  e
作者: modengxian111    时间: 2021-6-8 13:11
大端模式:低位字节存在高地址上,高位字节存在低地址上
作者: modengxian111    时间: 2021-6-8 13:11
小端模式:高位字节存在高地址上,低位字节存在低地址上
作者: qq666888qqw    时间: 2021-6-8 15:26
小端模式的测试,一般arm都默认是小端方式




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2