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

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[005] [ARM-Cortex-M3/4] 大小端存储 的相关文章

  • C++中析构函数为虚函数

    1 析构函数是否定义为虚函数的区别 xff08 1 xff09 析构函数定义为虚函数时 xff1a 基类指针可以指向派生类的对象 xff08 多态性 xff09 xff0c 如果删除该指针delete p xff1b 就会调用该指针指向的派
  • [Linux C]TCP通讯例程

    这个是最最最基本的例程 xff0c 先开一个坑 xff0c 稍后再慢慢完善 服务端程序 include lt stdio h gt include lt stdlib h gt include lt string h gt include
  • STM32串口环形缓冲区实现

    stm32串口环形缓冲区 一 ringbuff h span class token macro property span class token directive hash span span class token directiv
  • C++系列8:常用库

    1 cmath 数学计算 include lt iostream gt include lt cmath gt using namespace std int main 数字定义 short s 61 10 int i 61 1000 lo
  • C语言 字符串函数

    C语言 字符串函数 一 字符串长度函数 strlen二 不受限制的字符串函数2 1 复制字符串函数 strcpy2 2 字符串连接函数 strcat2 3 字符串比较函数strcmp 三 长度受限制的字符串函数3 1 复制字符串函数 str
  • HTTP基本认证(Basic Authentication)的JAVA示例

    大家在登录网站的时候 xff0c 大部分时候是通过一个表单提交登录信息 但是有时候浏览器会弹出一个登录验证的对话框 xff0c 如下图 xff0c 这就是使用HTTP基本认证 下面来看看一看这个认证的工作过程 第一步 客户端发送http r
  • c++各种常用库

    cmath xff1a 开根号 xff1a include lt iostream gt include lt cmath gt using namespace std int main double x 61 8 cout lt lt p
  • 安装cv2遇到的小问题解决

    前面文章中也用到了cv2这个包 安装cv2只需要输入下面指令 xff0c pip install opencv python 我在给我的树莓派安装时 xff0c 后面还遇到了一些问题 先是出现 ImportError libcblas so
  • C语言<string.h>常用函数整理

    整理了string h中常用的几个函数 xff0c 仅供参考 xff01 1 strcpy 2 memcpy 3 strcat 4 strchr 5 strstr 6 strcmp 7 memcmp 8 strset 9 memset 声明
  • POCO C++库学习和分析 -- 日志 (一)

    POCO C 43 43 库学习和分析 日志 一 日志对于程序来说是非常重要的 xff0c 特别是对一些大型程序而言 一旦程序被发布 xff0c 在现场日志几乎是程序员唯一可以获取程序信息的手段 Poco作为一个框架类库 xff0c 提供了
  • 字节存储排序:大端和小端

    当前的存储器 xff0c 多以byte为访问的最小单元 xff0c 当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题 于是端 endian 的问题应运而生了 对于不同的存储方法 就有大端 big endian 和小端
  • CRC算法原理及C语言实现

    CRC算法原理及C语言实现 摘 要 本文从理论上推导出CRC算法实现原理 xff0c 给出三种分别适应不同计算机或微控制器硬件环境的C语言程序 读者更能根据本算法原理 xff0c 用不同的语言编写出独特风格更加实用的CRC计算程序 关键词
  • 动态分配的内存释放之后指针要置空

    define CRT SECURE NO WARNINGS include lt stdio h gt include lt stdlib h gt void main2 int num scanf 34 d 34 amp num prin
  • yolomark的相关操作

    1 文件组成 主要组成部分如图上 改yolo mark脚本中指令 主要是改左边的图片路径 2 使用步骤 进入cmd 输入yolo mark exe的文件路径 开始标注 image num 是对应图像的数 xff0c object id是对应
  • c++:3.7迭代器(1)

    迭代器 迭代器的基本概念 xff1a 1 迭代器是一种遍历容器元素的数据类型 C 43 43 迭代器Interator就是一个指向某种STL对象的泛型指针 通过该指针可以简单方便地遍历所有元素 2 迭代器 xff08 iterator xf
  • 51单片机定时器的查询和进入中断处理

    51单片机定时器可用两种方式处理 xff1a 查询和进入中断处理 1 查询方式 void Init T0 void 定时器初始化 TMOD 61 0x01 计时器模式 TH0 61 65535 65000 256 初装值为65536 650
  • DIY 无人机

    这是一个为满足个人兴趣的实践性项目 这个项目起源于我买的一架航模级的遥控电动直升机 xff0c 想要飞好它还是相当困难的 xff0c 需要敏捷的反应 轻柔的控制 xff0c 不幸的是我的反射弧很长 xff0c 所以练习起来格外困难 在对我的
  • 自定义的CircleProgressBar,支持自定义宽度,颜色等等。

    基于Anbase框架优化了了一个自定义的CircleProgressBar xff0c onDraw方法如下 64 Override protected void onDraw Canvas canvas super onDraw canv
  • 3D打印技术

    3D打印技术 什么是3D打印技术3D打印机的发展和运用领域3D打印过程 什么是3D打印技术 3D打印 xff08 3D printing xff09 是快速成型的一种技术 xff0c 自1986年美国科学家查克 赫尔开发第一台商业3D印刷机
  • 改变世界的17个方程式

    数学是一种美妙而优雅的东西 xff0c 它隐藏在我们生活的方方面面 xff0c 却又难以察觉 xff0c 而这需要一双慧眼才能看到 2013年 xff0c 科普作家伊恩 斯图尔特 Ian Stewart 就专门出了一本书 xff0c 名叫

随机推荐

  • ROS控制多台机器人实现多机协同

    ROS控制多台机器人的思路与实现 1 实现思路1 1 两台机器人跟随1 2 多台机器人编队 2 TF工具的使用2 1 什么是TF2 2 TF的构成2 3 向TF工具广播发送自己位置2 4 向TF工具收听获取坐标关系 3 通过turtlesi
  • 适合小白入门Arduino UNO的介绍

    编者按 xff1a 本文转载于酷耍平台 xff08 kooshua com xff09 Arduino是什么 xff1f Arduino是一款便捷灵活 方便上手的开源电子原型平台 包含硬件 xff08 各种型号的Arduino板 xff09
  • 记海康摄像头获取保存截图的一个方法(c#)

    记海康摄像头获取保存截图的一个方法 xff08 c xff09 先获取海康摄像头接口信息 引入模块 span class token keyword using span span class token namespace System
  • Linux设备树语法详解

    概念 Linux内核从3 x开始引入设备树的概念 xff0c 用于实现驱动代码与设备信息相分离 在设备树出现以前 xff0c 所有关于设备的具体信息都要写在驱动里 xff0c 一旦外围设备变化 xff0c 驱动代码就要重写 引入了设备树之后
  • Arduino智能越野小车AIR ROVER

    摘自 xff1a https goldelec com product detail 507 精心打造智能小车AIR ROVER xff0c 结实 稳固 大小适中 xff0c 越野爬坡能强 xff0c 采用麦克纳姆轮 xff0c 通过手机A
  • SSR的原理及好处

    什么是SSR SSR是Server Side Render简称 xff0c 叫服务端渲染 在客户端请求服务器的时候 xff0c 服务器到数据库中获取到相关的数据 xff0c 并且在服务器内部将Vue组件渲染成HTML xff0c 并且将数据
  • 区位码、国标码与机内码

    区位码 国标码与机内码 为了适应计算机处理汉字信息的需要 xff0c 在 1980 年 xff0c 我国国家标准总局发布 信息交换用汉字编码字符集 基本集 1981 年 5 月 1 日 开始实施的这套国家标准 这套国家标准的标准号是 GB2
  • 获取NSString子字符串

    NSString类中提供了这样三个方法用于获取子字符串 xff1a substringFromIndex substringWithRange substringToIndex xff1a 它们该怎么使用呢 xff1f 见下面代码即可知道
  • NSData和UIImage之间的转换

    源自 xff1a http stackoverflow com questions 2240765 nsdata to uiimage Try this code This worked for me create path to save
  • 获取UIImage的图像MD5

    问 xff1a I 39 m trying to compare two UIImages from the file system to see if they are the same Obviously I can 39 t use
  • 最全面的shsh备份及恢复教程,已更新Win版小雨伞4.33.00

    转自 xff1a http bbs weiphone com read htm tid 2017752 html 很多小白不知道如何备份shsh xff0c 论坛有很多关于备份shsh的帖子 xff0c 但大多都不全面 xff0c 本贴把s
  • C++查看大端序小端序的一些思考

    首先明确一个概念 xff0c 无论是大段序还是小端序 类型指针指向的地址都是该类型所占内存的低地址 明确了这个 xff0c 就好判断大端序和小端序了 这是大端序小端序的介绍链接 下边的是验证系统是大端序还是小端序的程序 span class
  • 设计模式书籍推荐

    1 名称 xff1a Head First Design Patterns 语言 xff1a java 评论 xff1a Jolt大奖得主 xff0c 介绍了常见的十几种模式 我认为最好的模式入门书籍 xff0c 内容生动 xff0c 风格
  • C#如何调用linux so库

    testlib c中的内容 xff1a include lt stdio h gt int sum int a int b return a 43 b int minus int a int b return a b main cs中的内容
  • 电机KV值

    电机 KV 值 xff1a 电机的转速 xff08 空载 xff09 61 KV 值 X 电压 xff1b 例如 KV1000 的电机在 10V 电压下它的转速 xff08 空载 xff09 就是 10000 转 分钟 电机的 KV 值越高
  • 用DD命令制作硬盘镜像

    用DD命令制作硬盘镜像 本文参考http serverfault com questions 4906 using dd for disk cloning写出 xff0c 转载时请说明出处 以下的说明都是针对备份整个硬盘 xff0c 而不是
  • 什么是PID 算法

    PID是工业控制上的一种控制算法 xff0c 其中P表示比例 xff0c I表示积分 xff0c D表示微分 以温度控制的PID程序为例 xff1a P xff08 比例 xff09 表示在温度设定值上下多少度的范围内做比例动作 xff0c
  • html代码向左居右对齐

    刚才居然忘了 现在写出来 lt div align 61 right gt 居右对齐 lt div gt left左 xff0c center中 xff0c right右
  • 出现java.lang.IllegalArgumentException: No configs match configSpec

    模拟器不支持OpenGL ES 2 0 是因为android模拟器不支持OpenGL ES 2 0 xff0c 解决办法 xff1a 创建模拟器时 xff1a GPU emulation选yes xff0c 需要android 4 0以上的
  • [005] [ARM-Cortex-M3/4] 大小端存储