51单片机
特殊指令MOVC实现读取程序存储区域的静态数据,只能读取,不能写入,因此不能实现自编程。
外部存储器通过P2、P0端口连接地址和数据总线,可实现扩展。P0与P2组合实现地址输出,
P0实现数据总线,因此一个数据周期需要两个总线周期。16位地址可访问64K外部地址空间。
外部内存地址与内部内存地址是平行的,因此都有0x0001,但是访问外部存储器通过MOVX指令实现。
-----------------
AVR:程序存储空间与SRAM数据存储空间独立编址。
数据存储空间:通用寄存器、IO寄存器、临时数据区。
静态数据存储在程序存储空间,用LPM、SPM指令存取静态常量。
全局变量:存放在SRAM中,对于C语言来说,由编译器规划整个SRAM数据区域的内存分配。
SRAM:全局变量、栈空间、堆空间,如果没有实现malloc,那么就没有实现堆管理。那么内存分配基本就是从栈上分配。因此就只存在两个区域,一个全局变量区,一个局部变量区(栈)。
AVR的内存地址空间的首地址是R0-R31通用寄存器。其它的状态寄存器SREG和堆栈指针寄存器SP
AVR可以实现自编程,通过SPM指令修改程序存储区。
------------------
PIC单片机
哈弗结构,独立编址。通用寄存器独立空间。
8位单片机,指令简化,没有直接的存储程序存储空

本文详细介绍了51、AVR、PIC和ARM四种单片机的总线结构和存储空间特点。51单片机使用MOVC读取程序存储区域,AVR具有独立的程序和数据存储空间,PIC单片机的哈弗结构以及ARM的统一编址。各单片机的自编程能力、外部存储器扩展及不同类型的内存访问方式也进行了阐述。
最低0.47元/天 解锁文章
386

被折叠的 条评论
为什么被折叠?



