以ARM STM32 2M的Flash 为例,如何寻址,获得地址范围?
方法一:
2M = 2*220=221 即
2^1=2, 二进制:10
2^2=4, 二进制:100
2^3=8, 二进制:1000
2^4=16, 二进制:10000
……
我们要明白一个规律,2的X次方 转换成二进制 就对应1后边添几个零
那么2M = 2*220=221就转换成2进制就有,1后边有21个零,每四位对应一个六进制,即 21/4=5……1,即0010 0000 0000 0000 0000 0000
综上,一共有
十进制:2M个地址,
二进制:0010 0000 0000 0000 0000 0000 个地址
十六进制:20 0000个地址
因为地址是从0开始的,以十六进制0x表示,
该模块地址范围是0x00000~0x1F FFFF,
因为个数是从一开始算,共0x20 0000个,但是地址是从零算的,别忘了减一。
方法二:
打开计算器,十进制输入2M(即2^20)转换成十六进制就行了呗。