STC15系列单片机4K 是怎么算出来的?
STC15系列单片机为例,在单片机内部集成了4K字节的RAM,4K是基本存储容量256字节+内部扩展SRAM3480=4096=4*1024K=4K,
对INTEL来说,片内256字节是非常重要的:
虽然CISC是复杂指令集架构,但是物理实现上很精简,反而是RICS 号称精简指令集架构,
但在物理实现上,很不精简,不惜成本的干.....
高128个字节,地址要和特殊功能寄存器SFRs共用!
这共用地址的128个字节,物理电路的实现是完全不同
寄存器那里是触发器和寄存器的逻辑电路,RAM就用存储器结构
CUP寻址模式不同,对应的就不同,直接寻址就是房屋SFRs
间接寻址就是访问RAM
片内基本RAM
低128字节00----7F 称为低128字节,80---FF称为高128字节
低128字节RAM(兼容传统MCS-51单片机):
该存储区域包括工作寄存器组区域:
这部分寄存器(共32个寄存器)的编码都是R0---R7 ,通过程序状态寄存器R0和R1来隐射其他的寄存器,4*8=32 。
这样指令编码的长度就没问题了。其实intel也很聪明的。20H到2FH是128位,不但可以用字节访问,也可以按位来访问,可以位操作。
这16个字节128位(Byte)很好用,很特殊。30H 到7FH,y用户可以自由发挥。
总结以上,看懂2张图:
接下来看看STC的创新:
寄存器 EXTRAM= 0
的时候:
0x0000----0x0EFF 看成是片内扩展区域
0x0F00---0xFFFF 看成是外部RAM60.25KB
当EXTRAM=1 :
0x0000H -----0xFFFFH外部 RAM 64KB
看下图,才知道外部RAM60.25KB
那3.75KB对应哪里?
看下图:
虽然物理上不同,但Keil uVision 的角度,这256+(3.75K是片内还是片外是没区别的)