表3-3: 内核寄存器映射 DS70135E CN 地址 SFR名幕 (首地 Bit 15 Bit14 Bit 13 Bit 12 Bit 11 Bit 10 Bit9 Bit8 Bit 7 Bit 6 Bit 5 Bit4 Bit 3 Bit 2 Bit 1 Bito 复位状志 址) 0000 WO/WREG 0000000000000000 w1 0002 W1 0000000000000000 2 0004 W2 0000000000000000 w3 0006 W3 0000000000000000 W4 0008 W4 0000000000000000 WS 000A W5 0000000000000000 ws 000C W6 0000000000000000 W7 000E W7 0000000000000000 w8 0010 W8 0000000000000000 W9 0012 W9 0000000000000000 W10 0014 W10 0000000000000000 W11 0016 W11 dsP1C30F4011/4012 0000000000000000 W12 0018 W12 0000000000000000 W13 001A W13 0000000000000000 W14 001c W14 0000000000000000 W15 001E W15 0000100000000000 SPLIM 0020 SPLIM 0000000000000000 ACCAL 0022 ACCAL 0000000000000000 ACCAH 0024 ACCAH 0000000000000000 ACCAU 0026 符号扩展(ACCA<39>) ACCAU 0000000000000000 ACCBL 0028 ACCBL 0000000000000000 ACCBH 002A ACCBH 0000000000000000 ACCBU 002C 符号扩展(ACCB<39>) ACCBU 0000000000000000 PCL 002E PCL 0000000000000000 PCH 0030 -1 PCH 0000000000000000 TBLPAG 0032 TBLPAG 0000000000000000 PSVPAG 0034 PSVPAG 0000000000000000 RCOUNT 0036 RCOUNT uuuu uuuuuuuu uuuu DCOUNT 0038 DCOUNT uuwu uuuuuuuuuuuu 2007 Microchip DOSTARTL 003A DOSTARTL uuuuuuuu uuuu uuuo DOSTARTH 003C 一 DOSTARTH 000000000 uuu uuuu DOENDL 003E DOENDL 0 uuuu uuuuuuuu uuu0 DOENDH 0040 DOENDH 0000 0000 Ouuu uuuu SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPLO RA N OV 0000000000000000 Technology CORCON 0044 US EDT DL2 DL1 DLO SATA SATB SATDW ACCSAT IPL3 PSV RND F 0000000000100000 MODCON 0046 XMODEN YMODEN BWM<3:0- YWM<3:0> XWM<3:0> 0000000000000000 XMODSRT 0048 XS<15:1> 0 wuwu uuuuuuuu uuu0 图注 ▣=未初始化位 柱 有关寄存器各位的说明,请参见《dsPIC30F系列参考手册》(DS70046ECN)
DS70135E_CN dsPIC30F4011/4012 第 30 页 2007 Microchip Technology Inc. 表 3-3: 内核寄存器映射 SFR 名称 地址 (首地 址) Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位状态 W0 0000 W0/WREG 0000 0000 0000 0000 W1 0002 W1 0000 0000 0000 0000 W2 0004 W2 0000 0000 0000 0000 W3 0006 W3 0000 0000 0000 0000 W4 0008 W4 0000 0000 0000 0000 W5 000A W5 0000 0000 0000 0000 W6 000C W6 0000 0000 0000 0000 W7 000E W7 0000 0000 0000 0000 W8 0010 W8 0000 0000 0000 0000 W9 0012 W9 0000 0000 0000 0000 W10 0014 W10 0000 0000 0000 0000 W11 0016 W11 0000 0000 0000 0000 W12 0018 W12 0000 0000 0000 0000 W13 001A W13 0000 0000 0000 0000 W14 001C W14 0000 0000 0000 0000 W15 001E W15 0000 1000 0000 0000 SPLIM 0020 SPLIM 0000 0000 0000 0000 ACCAL 0022 ACCAL 0000 0000 0000 0000 ACCAH 0024 ACCAH 0000 0000 0000 0000 ACCAU 0026 符号扩展 (ACCA<39>) ACCAU 0000 0000 0000 0000 ACCBL 0028 ACCBL 0000 0000 0000 0000 ACCBH 002A ACCBH 0000 0000 0000 0000 ACCBU 002C 符号扩展 (ACCB<39>) ACCBU 0000 0000 0000 0000 PCL 002E PCL 0000 0000 0000 0000 PCH 0030 — — — — — — — — — PCH 0000 0000 0000 0000 TBLPAG 0032 — — — — — — — — TBLPAG 0000 0000 0000 0000 PSVPAG 0034 — — — — — — — — PSVPAG 0000 0000 0000 0000 RCOUNT 0036 RCOUNT uuuu uuuu uuuu uuuu DCOUNT 0038 DCOUNT uuuu uuuu uuuu uuuu DOSTARTL 003A DOSTARTL 0 uuuu uuuu uuuu uuu0 DOSTARTH 003C — — — — — — — — — DOSTARTH 0000 0000 0uuu uuuu DOENDL 003E DOENDL 0 uuuu uuuu uuuu uuu0 DOENDH 0040 — — — — — — — — — DOENDH 0000 0000 0uuu uuuu SR 0042 OA OB SA SB OAB SAB DA DC IPL2 IPL1 IPL0 RA N OV Z C 0000 0000 0000 0000 CORCON 0044 — — — US EDT DL2 DL1 DL0 SATA SATB SATDW ACCSAT IPL3 PSV RND IF 0000 0000 0010 0000 MODCON 0046 XMODEN YMODEN — — BWM<3:0> YWM<3:0> XWM<3:0> 0000 0000 0000 0000 XMODSRT 0048 XS<15:1> 0 uuuu uuuu uuuu uuu0 图注: u = 未初始化位 注: 有关寄存器各位的说明,请参见 《dsPIC30F 系列参考手册》(DS70046E_CN)
表3-3: 内核寄存器映射(续) @2007 Microchip Technology Inc. SFR名称 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit o 复位状老 XMODEND 004A XE<15:12 uuwu uuuuuuuu uuul YMODSRT 004C YS<15:1> 0 YMODEND 004E YE<15:12 XBREV 0050 BREN XB<14:0> uuu uuuuuuuu uuuu DISICNT 0052 DISICNT<13:0> 0000000000000000 图注 口=未初始化位 注: 有关寄存器各位的说明, 请参见 《dsPIC30F系列参考手册》(DS70046ECN), DS70135E_CN 31 30F4011/4012 ds
2007 Microchip Technology Inc. DS70135E_CN 第 31 页 dsPIC30F4011/4012 XMODEND 004A XE<15:1> 1 uuuu uuuu uuuu uuu1 YMODSRT 004C YS<15:1> 0 uuuu uuuu uuuu uuu0 YMODEND 004E YE<15:1> 1 uuuu uuuu uuuu uuu1 XBREV 0050 BREN XB<14:0> uuuu uuuu uuuu uuuu DISICNT 0052 — — DISICNT<13:0> 0000 0000 0000 0000 表 3-3: 内核寄存器映射 (续) SFR 名称 地址 (首地 址) Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 复位状态 图注: u = 未初始化位 注: 有关寄存器各位的说明,请参见 《dsPIC30F 系列参考手册》(DS70046E_CN)
dsP1C30F4011/4012 注: DS70135E_CN第32页 2007 Microchip Technology Inc
dsPIC30F4011/4012 DS70135E_CN 第 32 页 2007 Microchip Technology Inc. 注:
dsPIC30F4011/4012 4.0 地址发生器单元 4.1.1 文件寄存器指令 注:本数据手册总结了dsPIC:30F系列器件的功能,但是不 大多数文件寄存器指令使用一个13位地址字段(f)来 应把本手册当作无所不包的参考手册来使用。有关CPU、外 直接寻址数据存储器中的前8192字节(near数据空 设、寄存器说明和一般器件功能的更多信息,请参见 间)。大多数文件寄存器指令使用工作寄存器W0,WO 《dsP1C30F系列参考手册》(DS70046ECN)。有关器件 在这些指令中表示为WREG。目标寄存器通常是同一个 指令集和编程的更多信,息,请参见《dsP1C30F33F程序 文件寄存器或WREG(MUL指令除外),它把结果写入 员参考手册》(DS70157BCN)。 寄存器或寄存器对。使用MOV指令能够获得更大的灵活 dsPIC DSC内核包含两个独立的地址发生器单元:X 性,可以在文件寄存器操作期间访问整个数据空间。 AGU和YAGU。YAGU仅支持DSP MAC类指令的字 长度数据读取。dsPIC数字信号控制器AGU支持如下 4.1.2 MCU指令 三种数据寻址类型: 三操作数MCU指令的形式是: ·线性寻址 操作数3=操作数1<功能>操作数2 ·模(循环)寻址 其中,操作数1始终是工作寄存器(即,寻址模式只能 ·位反转寻址 是寄存器直接寻址),称为b。操作数2可以是一个 线性寻址和模数据寻址模式可应用于数据空间或程序空 W寄存器,取自数据存储器或一个5位立即数。结果可 间。位反转寻址只能用于数据空间地址。 以存放在W寄存器或地址单元中。MCU指令支持以下 寻址模式: 4.1指令寻址模式 ·寄存器直接寻址 表4-1给出了基本的寻址模式,这些寻址模式经过优化 ·寄存器间接寻址 可以支持各指令的具体功能。MAC类指令中提供的寻址 ·执行后修改的寄存器间接寻址 模式与其他指令类型中的寻址模式略有不同。 ·执行前修改的寄存器间接寻址 ·5位或10位立即数寻址 注 并非所有指令都支持上述所有的寻址模 式。各条指令可能支持这些寻址模式中的 某些模式。 表4-1: 支持的基本寻址模式 寻址模式 说明 文件寄存器直接寻址 明确指定文件寄存器的地址。 寄存器直接寻址 直接访问寄存器的内容。 寄存器间接寻址 Wh的内容形成EA。 执行后修改的寄存器间接寻址 n的内容形成EA。然后用一个常量值来修改Wn(递增或递减)。 执行前修改的寄存器间接寻址 先用一个有符号常量值修改W(递增或递减),再由此时的Wn内容形成 EA. 带寄存器偏移量的寄存器间接寻址 Wn和Wb的和形成EA. 带立即数偏移量的寄存器间接寻址 Wn和立即数的和形成EA。 2007 Microchip Technology Inc. DS70135ECN第33页
2007 Microchip Technology Inc. DS70135E_CN 第 33 页 dsPIC30F4011/4012 4.0 地址发生器单元 dsPIC DSC 内核包含两个独立的地址发生器单元:X AGU 和 Y AGU。 Y AGU 仅支持 DSP MAC 类指令的字 长度数据读取。 dsPIC 数字信号控制器 AGU 支持如下 三种数据寻址类型: • 线性寻址 • 模 (循环)寻址 • 位反转寻址 线性寻址和模数据寻址模式可应用于数据空间或程序空 间。位反转寻址只能用于数据空间地址。 4.1 指令寻址模式 表 4-1 给出了基本的寻址模式,这些寻址模式经过优化 可以支持各指令的具体功能。MAC 类指令中提供的寻址 模式与其他指令类型中的寻址模式略有不同。 4.1.1 文件寄存器指令 大多数文件寄存器指令使用一个 13 位地址字段(f)来 直接寻址数据存储器中的前 8192 字节 (near 数据空 间)。大多数文件寄存器指令使用工作寄存器 W0,W0 在这些指令中表示为WREG。目标寄存器通常是同一个 文件寄存器或 WREG(MUL 指令除外),它把结果写入 寄存器或寄存器对。使用 MOV 指令能够获得更大的灵活 性,可以在文件寄存器操作期间访问整个数据空间。 4.1.2 MCU 指令 三操作数 MCU 指令的形式是: 操作数 3 = 操作数 1< 功能 > 操作数 2 其中,操作数 1 始终是工作寄存器(即,寻址模式只能 是寄存器直接寻址),称为 Wb。操作数 2 可以是一个 W 寄存器,取自数据存储器或一个 5 位立即数。结果可 以存放在 W 寄存器或地址单元中。MCU 指令支持以下 寻址模式: • 寄存器直接寻址 • 寄存器间接寻址 • 执行后修改的寄存器间接寻址 • 执行前修改的寄存器间接寻址 • 5 位或 10 位立即数寻址 表 4-1: 支持的基本寻址模式 注:本数据手册总结了 dsPIC30F 系列器件的功能,但是不 应把本手册当作无所不包的参考手册来使用。有关 CPU、外 设、寄存器说明和一般器件功能的更多信息,请参见 《dsPIC30F 系列参考手册》(DS70046E_CN)。有关器件 指令集和编程的更多信息,请参见 《dsPIC30F/33F 程序 员参考手册》(DS70157B_CN)。 注: 并非所有指令都支持上述所有的寻址模 式。各条指令可能支持这些寻址模式中的 某些模式。 寻址模式 说明 文件寄存器直接寻址 明确指定文件寄存器的地址。 寄存器直接寻址 直接访问寄存器的内容。 寄存器间接寻址 Wn 的内容形成 EA。 执行后修改的寄存器间接寻址 Wn 的内容形成 EA。然后用一个常量值来修改 Wn (递增或递减)。 执行前修改的寄存器间接寻址 先用一个有符号常量值修改 Wn (递增或递减),再由此时的 Wn 内容形成 EA。 带寄存器偏移量的寄存器间接寻址 Wn 和 Wb 的和形成 EA。 带立即数偏移量的寄存器间接寻址 Wn 和立即数的和形成 EA
dsPIC30F4011/4012 4.1.3 传送指令和累加器类指令 概括地说,MAC类指令支持以下寻址模式: 与其他指令相比,传送指令和DSP累加器类指令提供 ·寄存器间接寻址 了更为灵活的寻址模式。除了大多数MCU指令支持的 ·执行后修改(修改量为2)的寄存器间接寻址 寻址模式以外,传送和累加器指令还支持带寄存器偏移 ·执行后修改(修改量为4)的寄存器间接寻址 量的寄存器间接寻址模式,这也叫做寄存器变址寻址模 式。 ·执行后修改(修改量为6)的寄存器间接寻址 ·带寄存器偏移量的寄存器间接寻址(变址寻址) 注: 对于MoV指令,指令中指定的寻址模式对 于源寄存器和目标寄存器EA,可以是不同 4.1.5 其他指令 的。然而,4位b(寄存器偏移量)字段 除了上述的各种寻址模式之外,一些指令使用各种长度 为源寄存器和目标寄存器所共用(但通常 的立即数。例如,BRA(转移)指令使用16位有符号 只由其中之一使用)。 立即数常量来直接指定转移的目标,而DIS工指令则使 概括地说,传送和累加器指令支持以下寻址模式: 用一个14位无符号立即数字段。在一些指令中,例如 ·寄存器直接寻址 ADD Acc,操作数的来源和运算结果已经暗含在操作码 ·寄存器间接寻址 中。某些操作,例如NOP,没有任何操作数。 ·执行后修改的寄存器间接寻址 4.2 模寻址 ·执行前修改的寄存器间接寻址 ·带寄存器偏移量的寄存器间接寻址(变址寻址) 模寻址是一种使用硬件来自动支持循环数据缓冲区的方 ·带立即数偏移量的寄存器间接寻址 法。目的是在执行紧密循环代码时(这在许多DSP算 ·8位立即数寻址 法中很典型),不需要用软件来执行数据地址边界检 查。 ·16位立即数寻址 可以在数据空间或程序空间中进行模寻址(因为这两种 注: 并非所有指令都支持上述所有的寻址模 空间的数据指针机制本质上是相同的)。每个X(也提 式。各条指令可能支持这些寻址模式中的 供指向程序空间的指针)和Y数据空间中都可支持一个 某些模式。 循环缓冲区。模寻址可以对任何W寄存器指针进行操 作。然而,最好不要将W14或W15用于模寻址,因为 4.1.4 MAC指令 这两个寄存器分别用作堆栈帧指针和堆栈指针。 双源操作数DSP指令(CLR、ED、EDAC、MAC、MPY、 总的来说,任何特定的循环缓冲区只能配置为单向工 MPY.N、MOVSAC和MSC),也叫做MAC指令,它们使用 作,因为根据缓冲区的方向,对缓冲区起始地址(对于 一组简化的寻址模式,允许用户通过寄存器间接寻址表 递增缓冲区)或结束地址(对于递减缓冲区)有某些限 有效地对数据指针进行操作。 制。 双源操作数预取寄存器必须是集合W8,W9,W10, 使用限制的唯一例外是那些长度为2的幂的缓冲区。这 W11}的成员。对于数据读取操作,W8和W9始终用于 些缓冲区满足起始和结束地址判据,它们可以双向工作 X RAGU,而W10和W11始终用于YAGU。从而,产 (即,在低地址边界和高地址边界上都将进行地址边界 生的有效地址(EA)(无论是在修改之前还是之后), 检查)。 对于W8和W9必须是X数据空间中的有效地址,对于 W10和W11则必须是Y数据空间中的有效地址。 注: 带寄存器偏移量的寄存器间接寻址仅可用 于W9(在X数据空间中)和W11(在Y 数据空间中)。 DS70135E_CN第34页 @2007 Microchip Technology Inc
dsPIC30F4011/4012 DS70135E_CN 第 34 页 2007 Microchip Technology Inc. 4.1.3 传送指令和累加器类指令 与其他指令相比,传送指令和 DSP 累加器类指令提供 了更为灵活的寻址模式。除了大多数 MCU 指令支持的 寻址模式以外,传送和累加器指令还支持带寄存器偏移 量的寄存器间接寻址模式,这也叫做寄存器变址寻址模 式。 概括地说,传送和累加器指令支持以下寻址模式: • 寄存器直接寻址 • 寄存器间接寻址 • 执行后修改的寄存器间接寻址 • 执行前修改的寄存器间接寻址 • 带寄存器偏移量的寄存器间接寻址 (变址寻址) • 带立即数偏移量的寄存器间接寻址 • 8 位立即数寻址 • 16 位立即数寻址 4.1.4 MAC 指令 双源操作数 DSP 指令(CLR、ED、EDAC、MAC、MPY、 MPY.N、MOVSAC 和 MSC),也叫做 MAC 指令,它们使用 一组简化的寻址模式,允许用户通过寄存器间接寻址表 有效地对数据指针进行操作。 双源操作数预取寄存器必须是集合 {W8, W9, W10, W11} 的成员。对于数据读取操作,W8 和 W9 始终用于 X RAGU,而 W10 和 W11 始终用于 Y AGU。从而,产 生的有效地址 (EA)(无论是在修改之前还是之后), 对于 W8 和 W9 必须是 X 数据空间中的有效地址,对于 W10 和 W11 则必须是 Y 数据空间中的有效地址。 概括地说, MAC 类指令支持以下寻址模式: • 寄存器间接寻址 • 执行后修改 (修改量为 2)的寄存器间接寻址 • 执行后修改 (修改量为 4)的寄存器间接寻址 • 执行后修改 (修改量为 6)的寄存器间接寻址 • 带寄存器偏移量的寄存器间接寻址 (变址寻址) 4.1.5 其他指令 除了上述的各种寻址模式之外,一些指令使用各种长度 的立即数。例如, BRA (转移)指令使用 16 位有符号 立即数常量来直接指定转移的目标,而 DISI 指令则使 用一个 14 位无符号立即数字段。在一些指令中,例如 ADD Acc,操作数的来源和运算结果已经暗含在操作码 中。某些操作,例如 NOP,没有任何操作数。 4.2 模寻址 模寻址是一种使用硬件来自动支持循环数据缓冲区的方 法。目的是在执行紧密循环代码时 (这在许多 DSP 算 法中很典型) ,不需要用软件来执行数据地址边界检 查。 可以在数据空间或程序空间中进行模寻址 (因为这两种 空间的数据指针机制本质上是相同的)。每个 X (也提 供指向程序空间的指针)和 Y 数据空间中都可支持一个 循环缓冲区。模寻址可以对任何 W 寄存器指针进行操 作。然而,最好不要将 W14 或 W15 用于模寻址,因为 这两个寄存器分别用作堆栈帧指针和堆栈指针。 总的来说,任何特定的循环缓冲区只能配置为单向工 作,因为根据缓冲区的方向,对缓冲区起始地址(对于 递增缓冲区)或结束地址(对于递减缓冲区)有某些限 制。 使用限制的唯一例外是那些长度为 2 的幂的缓冲区。这 些缓冲区满足起始和结束地址判据,它们可以双向工作 (即,在低地址边界和高地址边界上都将进行地址边界 检查)。 注: 对于 MOV 指令,指令中指定的寻址模式对 于源寄存器和目标寄存器 EA,可以是不同 的。然而, 4 位 Wb (寄存器偏移量)字段 为源寄存器和目标寄存器所共用 (但通常 只由其中之一使用)。 注: 并非所有指令都支持上述所有的寻址模 式。各条指令可能支持这些寻址模式中的 某些模式。 注: 带寄存器偏移量的寄存器间接寻址仅可用 于 W9 (在 X 数据空间中)和 W11 (在 Y 数据空间中)