打印
[Atmel]

每天跟我读点资料: XMEAG B1数据手册(6)

[复制链接]
509|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-12-21 21:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
6.7 堆栈和堆栈指针
栈是用来存贮在中断和子程序调用后的返回地址的。它可以用来存贮临时数据。栈指针(SP)寄存器总是指向栈顶。它实现如两个8位寄存器可访问I/O存贮空间。数扰可以压入栈或弹出栈使用PUSHPOP指令。栈增长从高内存地址向低内存地址。这暗示着压栈减少SP,弹栈增加SPSP的值在复位后自动装载,并且是SRAM中的高地址。如果SP被改变,它必须设为指向高于0x2000,并且它必须被定义在任何子函数调用或在中断使能之前。在中断或子程序调用时,返回地址自动被压栈。返回地址可以是两或三字节,依据设备的程序存贮器大小而定。对于有着128KB程序存贮器或更小的的设备程序存贮器,返回地址是两个字节,因此栈指针增加或减少以两字节为单位。对于大于128KB程序存贮的苾片,返回地址是三字节,因此SP是以三字节增加或减少。返回地址从栈弹出,当从中断返回时使用RETI指令,当从子函数返回时用RET指令。
SP减一当数据推上推指令堆栈,并增加一当数据从堆栈中弹出时,使用弹出指令。
防止失几更新堆栈指针从软件写入SPL将自动禁用中断最多至四个指令,或直到下一个I/O存贮写。
6.8 寄存器文件
寄存器文件由328比特通用功能的工作寄存器组成,带有单时钟周期的访问时间。寄存器文件支持以下输入输出流程:
。一个 8位输出操作和一个8位结果输入
。两个8位输出 操作和一个8位结果输入
。两个8位输出操作和一个16位结果输入
。一个16位输出操作和一个16位结果输入
32个寄存器中的6个可以用作316位地址寄存器数据地址的指针。使能有效地址计算。其中的一个地址指针能用作一个在FLASH程序存贮器中查找表。
7.存贮
7.1 特点
Flash程序存贮器
    。一个线性地址空间
    。在系统编程
    。自编程和引导支持
    。应用程序代码段
        。应用程序表部分为应用程序代码或数据存储
l  。启动部分应用程序代码或程序代码
l  。分离读/写保护锁位的所有部分
l  。建在一个可选择的Flash程序存储器段快速CRC校验

相关帖子

沙发
dirtwillfly| | 2015-12-22 09:13 | 只看该作者
感谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6945

帖子

66

粉丝