dsp56311 设备 errata 为 掩饰 1k34a, rev. 5
12 freescale 半导体
必备资料 errata
ED40
描述 (增加 11/11/99):
当 一个 操作指南 和 一个ll 这 下列的 情况 follows 一个 repeat 操作指南,
然后 这 last move 将 是 corrupted.:
1.
这 重复的 操作指南是 从 外部 记忆.
2.
这 重复的 操作指南 是 一个 dalu 操作指南 那 包含 2 dal
寄存器, 一个 作 一个 源, 和 一个 作 destination (e.g. tfr, add).
3.
这 重复的 操作指南 有 一个 double move 在 并行的 至 这 dalu
操作指南: 一个 move's 源 是这 destination 的 这 dalu instruc
-
tion (造成 一个 dalu interlock); the 其它 move's destination 是 这
源 的 这 dalu 操作指南.
例子:
rep #number
tfr x0,一个 x(r0)+,x0一个,y0 ; 这个 操作指南 是 从 外部 记忆
|__|_________|------|----------> 这个 是 情况 3 第二 部分.
|_____________|----------> 这个 是 情况 3, 第一 部分 - dalu interlock
在 这个 例子, 这 第二 iteration 在之前 这 last, 这 “x(r0)+,x0” doesn't happen.
在 这 第一 iteration 在之前 这 last, 这 x0寄存器 是 fixed 和 这 “x(r0)+,x0”,
但是 这 “tfr x0,a” gets 这 wrong 值 从这 previous iteration's x0. 因此, 在 这
last iteration 这 一个 寄存器 是 fixed 和“tfr x0,a”, 但是 这 “a,y0” transfers 这
wrong 值 从 这 previous 它限定's 一个 寄存器 至 y0.
workaround:
1.
使用 这 做 操作指南 instead; mask 任何 需要 中断 在之前
这 做.
2.
run 这 rep 说明从 内部的 记忆.
3.
don't 制造 dalu interlocks 在 这 重复的 操作指南. 之后 这
repeat 制造 这 move. 在 这 例子 在之上, 所有 这 “move 一个,y0” 是
redundant 所以 它 能 是 完毕在 这 next 操作指南:
rep #number
tfr x0,一个 x(r0)+,x0
move 一个,y0
如果 非 中断 在之前 这 move 是 一个 must, 掩饰 这 中断 在之前 这 rep.
pertains 至:
dsp56300 家族 手工的,
rev. 2, 部分 一个.3, “instruction sequence
restrictions.”
1K34A
ED42
描述 (增加 在 3/22/2000)
这 dma 终止-的-块-transfer 中断 不能 是 使用 如果 dma 是 运行 在
这 模式 在 这个 de 是 不 cleared 在 这 终止 的 这 块 转移 (dtm = 100 或者
101).
pertains 至:
dsp56300 家族 手工的,
rev. 2, 部分 10.4.1.2, “end-的-块-转移
中断.” 也, 部分 10.5.3.5,“dma 控制 寄存器 (dcr[5–0],”
discussion 的 位 21 – 19 (dtm 位).
1K34A