[005] [ARM-Cortex-M3/4] 大小端存储

ARM
Cortex-M3/4
大小端存储含义
测试STM32的大小端`

1 大小端存储含义

对于整型变量int a = 0x12345678,其在内存中有两种存储方式:

▲ 大小端存储含义
  • 小端存储(Little Endian):变量的低字节存储在内存低地址(0x12345678的LSB<0x78>存在内存中的低地址)
  • 大端存储(Big Endian):变量的高字节存储在内存低地址(0x12345678的MSB<0x12>存在内存中的低地址)

一般的arm芯片都是默认使用小端存储模式,对于CM3,可以使用REV/REVH等相关指令反转字节序,来完成端模式的转换。

注意:在CM3中,存储模式是在复位时确定的,且运行时不可更改。并且指令预取永远使用小端模式,在配置控制存储空间的访问也永远使用小端模式(包括NVIC, FPB等)。另外,外部私有总线地址区0xE0000000至0xE00FFFFF也永远使用小端模式。

2 测试STM32的大小端

int a = 0x12345678;
char b[4];
int main(void)
{
	for (int i = 0; i < 4; i++){
		b[i] = *((char*)&a + i);
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ONG33I3G-1646808534366)(img/image-20220309144049390.png)]

▲ 利用指针验证STM32是小端存储

因此,STM32默认使用小端存储

当然,也可以用联合体来测试:

union B_t{
	char b[4];
	int a;
};
union B_t B;
int main(void)
{
	B.a = 0x12345678;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uMNIEHKn-1646808534367)(img/image-20220309144832456.png)]

▲ 联合体验证STM32是小端存储

END

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Cortex-M3和Cortex-M4ARM架构的微控制器。它们广泛应用于嵌入式系统和物联网设备中,具有高性能、低功耗和强大的性能优化能力。 Cortex-M3和Cortex-M4使用的指令集是ARMv7-M架构,其中包含了大量的指令,用于实现各种功能和操作。下面是这两种微控制器常用的指令集: 1. 数据处理指令:这些指令用于对数据进行处理和操作,比如加法、减法、移位等。Cortex-M3和Cortex-M4支持32位整数和浮点数的处理指令,可以高效地执行各种数学运算。 2. 控制指令:这些指令用于控制程序的流程,比如条件判断、跳转和函数调用等。Cortex-M3和Cortex-M4支持分支指令、循环指令和中断指令,可以实现灵活的控制流程和异常处理能力。 3. 存储器访问指令:这些指令用于对存储器进行读写操作,包括读取数据、存储数据和移动数据等。Cortex-M3和Cortex-M4支持多种不同的存储器访问指令,包括字节访问、半字访问和字访问等,可以高效地操作各种类型的存储器。 4. 特殊功能寄存器指令:这些指令用于对特殊功能寄存器进行读写操作,包括配置系统控制寄存器、中断寄存器和电源管理寄存器等。Cortex-M3和Cortex-M4提供了一套完整的特殊功能寄存器指令集,方便对系统进行配置和管理。 总结来说,Cortex-M3和Cortex-M4常用的指令集主要包括数据处理指令、控制指令、存储器访问指令和特殊功能寄存器指令。这些指令可以满足微控制器在嵌入式系统和物联网设备中的各种需求,实现高效、低功耗的数据处理和控制功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯西的彷徨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值