CY7C64013
CY7C64113
文档 #: 38-08001 rev. ** 页 14 的 48
5.4 8-位 程序 堆栈 pointer (psp)
在 一个 重置, 这 程序 堆栈 pointer (psp) 是 设置 至 0x00 和
“
grows
”
upward 从 这个 地址. 这 psp 将 是 设置 用
firmware, 使用 这 mov psp,一个 操作指南. 这 psp 支持 中断 维护 下面 硬件 控制 和 call, ret, 和
reti 说明 下面 firmware 控制. 这 psp 是 不 readable 用 这 firmware.
在 一个 中断 acknowledge, 中断 是 无能 和 这 14-位 程序 计数器, carry 标记, 和 零 标记 是 写作
二 字节 的 数据 记忆. 这 第一 字节 是 贮存 在 这 记忆 addressed 用 这 psp, 然后 这 psp 是 incremented. 这 第二
字节 是 贮存 在 记忆 addressed 用 这 psp, 和 这 psp 是 incremented 又一次. 这 整体的 效应 是 至 store 这 程序
计数器 和 flags 在 这 程序
“
堆栈
”
和 increment 这 psp 用 二.
这 返回 从 中断 (reti) 操作指南 decrements 这 psp, 然后 restores 这 第二 字节 从 记忆 addressed 用 这
psp. 这 psp 是 decremented 又一次 和 这 第一 字节 是 restored 从 记忆 addressed 用 这 psp. 之后 这 程序 计数器
和 flags 有 被 restored 从 堆栈, 这 中断 是 使能. 这 整体的 效应 是 至 restore 这 程序 计数器 和 flags
从 这 程序 堆栈, decrement 这 psp 用 二, 和 re-使能 中断.
这 call 子例程 (call) 操作指南 stores 这 程序 计数器 和 flags 在 这 程序 堆栈 和 increments 这 psp 用
二.
这 返回 从 子例程 (ret) 操作指南 restores 这 程序 计数器 但是 不 这 flags 从 这 程序 堆栈 和 decre-
ments 这 psp 用 二.
5.4.1 数据 记忆 organization
这 cy7c64x13 微控制器 提供 256 字节 的 数据 内存. 正常情况下, 这 sram 是 partitioned 在 四 areas: 程序
堆栈, 用户 变量, 数据 堆栈, 和 usb endpoint fifos. 这 下列的 是 一个 例子 的 在哪里 这 程序 stack, 数据 stack,
和 用户 变量 areas 可以 是 located.
5.5 8-位 数据 堆栈 pointer (dsp)
这 数据 堆栈 pointer (dsp) 支持 推 和 流行音乐 说明 那 使用 这 数据 堆栈 为 temporary 存储. 一个 推
操作指南 前-decrements 这 dsp, 然后 写 数据 至 这 记忆 location addressed 用 这 dsp. 一个 流行音乐 操作指南 读
数据 从 这 记忆 location addressed 用 这 dsp, 然后 邮递-increments 这 dsp.
在 一个 重置, 这 dsp 是 重置 至 0x00. 一个 推 操作指南 当 dsp 相等 0x00 写 数据 在 这 顶 的 这 数据 内存
(地址 0xff). 这个 写 数据 至 这 记忆 范围 保留 为 usb endpoint fifos. 因此, 这 dsp 应当 是 indexed
在 一个 适合的 记忆 location 那 做 不 compromise 这 程序 堆栈, 用户-定义 记忆 (变量), 或者 这 usb
endpoint fifos.
为 usb 产品, 这 firmware 应当 设置 这 dsp 至 一个 适合的 location 至 避免 一个 记忆 conflict 和 内存 专心致志的
至 usb fifos. 这 记忆 (所需的)东西 为 这 usb endpoints 是 描述 在 部分 18.2. 例子 组装 说明
至 做 这个 和 二 设备 地址 (fifos begin 在 0xd8) 是 显示 在下:
mov 一个,20h ; move 20 十六进制 在 accumulator (必须 是 d8h 或者 较少)
swap 一个,dsp ; swap accumulator 值 在 dsp 寄存器
注释:
1. 谈及 至 部分 5.5 为 一个 描述 的 dsp.
2. endpoint sizes 是 fixed 用 这 endpoint 大小 位 (i/o 寄存器 0x1f, 位 7), 看
表格 18-1
.
之后 重置 地址
8-位 dsp 8-位 psp 0x00
程序 堆栈 growth
(move dsp
[1]
)
8-位 dsp
用户 选择
数据 堆栈 growth
用户 变量
usb 先进先出 空间 为 five endpoints
[2]
0xFF