32位单片机存储地址的理解

1.32位操作系统 是指操作系统可以处理32位长的地址。

2.一个32位的地址可以表示的内存范围是 2^32个地址,每个地址指向一个存储单元

3.一个存储单元是Byte 不是bit

4.2的32次方 等于 4,294,967,296,也就是 4GB。这是内存空间的最大范围

        2^32=2^2        *         2^10         *         2^10         *        2^10

                   4           *         KB                        MB                     GB

下图是stm32f103c8t6的存储器映射图

由图中可以知道Flash memory的存储空间范围是0x0800 0000-0x0801 FFFF

地址相减0x0801 FFFF-0x0800 0000=0x1 FFFF 

换算成十进制为131071(B)

那么换算成KB 则为127KB 所以Flash的大小为128KB 这和c8t6手册上的flash大小是一样的

       

因为存储单元的单位是Byte (字节) 所以

  • 当你存储一个多字节的数据(比如 uint32_t 类型,它占用4字节),这些字节会存储在连续的内存地址中。
  • 如果 uint32_t 变量从地址 0x1000 开始,它将占用 0x10000x1003 这4个字节的地址。

比如说 我定义一个数值 uint32_t a=10; 假设存储在0x1000

在实际使用中,STM32 微控制器和大多数 ARM 架构的处理器采用小端模式

假设:定义了两个变量

int myVar = 123;
int *myPtr = &myVar;

那么如果myVar的地址为0x2000 0000
*myPtr的地址为0x2000 0004
那么

所以32位系统中 一个指针占4个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值