STM32G4系列内存映射
一、十六进制存在意义
如上图,是STM32G4系列内存映射和外设寄存器边界地址。在边界地址中,由于书写一个很大的二进制数将十分冗长且易于出错。如果,以4位一组的二进制数可以表示2^4=16种数。
因此,使用基数为16的表示会更方便,这称为十六进制(hexadecimal)。
二、芯片编址方式
1.基本概念
位(bit):通常用 0 和 1 来表示位的两种状态
字节(Byte):字节由 8 个位构成 即:1 Byte(字节)=8 bits
字(Word):计算机进行数据处理时,一次存取、加工和传送的数据长度称为字。
字的大小取决于处理器的结构(32位即:4B;64位即:8B)
固定转换:1 KB = 1024 B =8*1024bit= 8192bit;
1 Byte(字节)= 8 bits;1 Byte=1 B;1bit =1 b
FMAC:
起始地址:0x4002_1400
大小:3KB=3*1024B=3072B 转换成十六进制 0xC00
结束地址:0x4002_1400+ 0x0000_0C00=0x4002_2FFF
RCC:
起始地址:0x4002_1000
大小:1KB=1024B 转换成十六进制 0x400
结束地址:0x4002_1000+ 0x0000_0400=0x4002_13FF
2.实例
memory map
WWDG register map
在memory map中,WWDG分配的地址是1KB。
在具体模块中,WWDG寄存器的地址映射,只有3个寄存器(32位),并且通常按字节编址,因此每个寄存器的偏移地址为0x004。
注:1KB为WWDG分配的地址空间
但是只有3个寄存器,所占地址为 3*0x004 = 0x00C,其他区域为:Reserved
3.编址方式的影响
以32位字长的处理器为例
计算机一般按照字节编址,寻址方式不同,对应的存储单元划分不一样
按字节寻址:地址为:0x00-0x04-0x08-0x12-0x16
按字寻址:地址为:0x00-0x01-0x02-0x03-0x04