数据通道:
1、AVR 采用了Harvard 结构,具有独立的数据和程序总线。
2、快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。
3、寄存器文件里有6个寄存器,可以用作3个16位的间接寻址,组成X,Y,Z寄存器,作为数据,程序间接寻址指针(C语言中,怎么用指针访问数据 )。
4、ALU支持寄存器之间以及寄存器和常数之间的算术和逻运算。(思考:ALU能操作内存单元吗,如果不能,内存数据怎样运算)
5、I/O空间包括64外设控制寄存器,直接访问;如SPI。I/O空间也映射到数据空间,地址在通用寄存器之后,为0x20-0x5F
指令通道:
6、程序流程通过有/无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。
7、程序存储器空间分为两个区:引导程序区(Boot 区)和应用程序区。
8、在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM 的大小。(什么是堆栈)
9、堆栈指针位于I/O 空间,可以进行读写访问。
10、AVR有一个灵活的中断模块。控制寄存器位于I/O空间。状态寄存器里有全局中断使能位。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。
阅读此文章的人还喜欢: