英飞凌tricore用户手册外设协处理器pcp_第1页
英飞凌tricore用户手册外设协处理器pcp_第2页
英飞凌tricore用户手册外设协处理器pcp_第3页
英飞凌tricore用户手册外设协处理器pcp_第4页
英飞凌tricore用户手册外设协处理器pcp_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-1V1.0, 2011-12TC172810外外设设控控制制处处理理器器(PCP)本章介绍外设控制处理器(PCP),给出 PCP 的架构、编程模型、寄存器及指令集。TC1728PCP 是 TC1767和TC1797 PCP 外设控制处理器的增强版本;而TC1767和TC1797 PCP 是TC1766 和TC1796 PCP的增强版本,TC1766 和TC1796 PCP又是TC1775PCP的增强版本。章节 10.2 对 PCP 进行总体描述;章节 10.22 对 PCP 的具体实现进行说明。10.1PCP 特特性性/性

2、性能能增增强强历历史史进进程程表表下表依次列出PCP增强版本,所有的PCP版本归纳在内。 其中包括不适用于TC1728的PCP增强版本。表表 21PCP 特特性性/性性能能增增强强历历史史进进程程表表版版本本增增强强的的性性能能TC1775 第一个发布的PCP版本TC1766, TC1796 优化的上下文切换 支持中断嵌套 增强指令集 增强指令执行速度 功能增强的中断排序TC1767, TC1797 增强PCP内核以支持更高的时钟频率时钟比率多样化,PCP:FPI可以为1:1和2:1PCP跟踪接口和PAL-MCDS相兼容校验的实现TC1387, TC1784,TC1798, TC172x只有该

3、行及以上的的增强性能包含在TC1728中。支持高度集成操作(见章节 10.2.1)。 对所有寄存器实行可编程ENDINIT写入保护。 对CMEM实行可编程写入保护。 对PRAM实行可编程写入保护。 可编程限制FPI寻址,而可以被PCP 写入ECC的实现(校验替代)多样的勘误修改。外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-2V1.0, 2011-12TC172810.1.1可可变变的的内内核核时时钟钟比比率率为了缩短中断延时、缩短非可中断任务时间以及提高计算强度,增强的PCP版本要求允许对内核时钟进行操作,使其比FPI时钟(FPI总线与PCP相连)更快。可用的时钟比

4、率(fFPI/fPCP)为1:1和1:2。SCU产生时钟并且对其进行控制。PCP对内核和FPI总线相关电路具有独立时钟输入。10.2外外设设控控制制处处理理器器概概述述TC1728 中的 PCP 用来执行传统计算机系统中通常由 DMA 控制器及其所支持的CPU 中断服务程序完成的任务。可简单地认为PCP 是主机处理器中断处理的第一道“防线”。PCP 可处理对时间要求苛刻的中断,减轻 CPU 负荷。这种机制具有下列优点: 避免主处理器由于处理大量中断任务,产生上下文切换延迟 减少中断占用的处理器寄存器和存储器管理的开销 改善中断服务子程序对数据捕获和数据传送操作的响应速度 易于实现多任务操作系统

5、PCP 架构可有效支持 DMA 类型的事务在任意器件和 TC1728 存储单元之间的传送,并具有相当的独立计算能力。10.2.1高高度度集集成成操操作作PCP被用在高度集成的系统中来执行各种系统苛刻任务。用PCP实现这类功能时,必须满足一项基本的要求,即在PCP上运行的软件操作必须对外部介质(比如TriCore)具有强大的防干扰能力。否则, PCP外部的系统故障将会影响PCP的操作,反过来可能会使系统苛刻任务(在PCP上运行的)执行失败。为了避免这类现象,可采取进一步措施,如,为PCP配置一系列的“保护”通道程序。这些通道保护不仅使PCP免受外部介质故障的影响,同样使PCP免受PCP其他“未保

6、护”通道上软件错误的影响。对于高度集成的系统,还需要防止发生PCP软件故障时产生向重要位置非期望的FPI写操作。为此,提供了一个可编程存储器保护特性来控制(硬件方式)可能被PCP写入的地址段。外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-3V1.0, 2011-12TC172810.3PCP 架架构构PCP 由以下单元模块组成,见图 16。PCP 处理器内核代码存储器(CMEM)参数存储器(PRAM)PCP 中断控制单元(PICU)PCP 服务请求节点(PSRN)与灵活外设接口(FPI 总线)相连的系统总线接口代码储存器CMEM参数储存器 PRAMPCP 处理器内核F

7、PI-接口PCP 服务请求节点PSRNsPCP 中断控制单元 PICUFPI 总线PCP 中断仲裁总线CPU 中断仲裁总线图图16PCP框框图图MCB06135外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-4V1.0, 2011-12TC172810.3.1PCP 处处理理器器PCP 处理器是 PCP 的核心,由指令流水线、一组 GPR、算术/逻辑单元(ALU) 以及控制寄存器、状态寄存器和逻辑电路组成。PCP 指令集是专为其所执行的任务而优 化设计的, PCP 指令集的总体描述见表 22。PCP 处理器内核通过 PCP 中断控制单元(PICU)接收来自外设或其它模块

8、的服务请求,执行各服务请求优先级所选择的通道程序(见8页 )。PCP 处理器内核首先从PRAM 中恢复通道程序的上下文,然后开始执行存储在代码存储器(CMEM)中的通道程序。满足退出条件时,PCP 处理器内核终止通道程序并将其上下文存储到 PRAM 中,然后 PCP 处理器准备好,随后准备接收下一个服务请求。当接收到比当前执行的服务请求优先级更高的服务请求时,PCP 处理器内核可将当前执行的通道程序挂起。一旦更高优先级的(一个或多个)请求执行完毕,PCP 处理器内核将自动恢复原先通道程序的处理。通过此方式挂起的通道被称为 “挂起通道”。PCP 完全由中断驱动,这意味着它只能由服务请求激活;与传

9、统处理器不同,PCP处理器没有后台执行的主程序。表表 22PCP 指指令令集集概概览览指指令令组组功功能能描描述述DMA 原语实现高效DMA通道加载/存储在PRAM或FPI存储器和GPR之间进行数据传送,转移或交换寄存器值算术运算加、减、比较和求补除法/乘法除法和乘法逻辑运算与、或、异或、非移位左移或右移、循环左移或右移、优先化位操作置位、清零、插入、测试程序流控制有条件跳转、长跳转、退出其他无操作、调试外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-5V1.0, 2011-12TC172810.3.2PCP 代代码码存存储储器器PCP 代码存储器(CMEM)保存由 P

10、CP 指令组成的通道程序。所有 PCP 指令长 度都为 16 位,因此 PCP 以 16 位(半字)宽度访问 CMEM。PCP 的程序计数器(PC)为 16位,最多可寻址 64 K 条指令,因而 PCP 代码存储器的最大容量为 128KB。CMEM 类型(Flash、ROM、SRAM 等)和容量与器件具体实现有关,TC1728 各 型号器件代码存储器的类型和容量见页 159。对 FPI 总线来讲,PCP CMEM 被看作 32 位宽存储器,必须以 32 位(字)宽度对其进行访问、以字节地址对其寻址。因此,计算 PCP 指令 FPI 地址时需要非常仔细,具体内容见页 58。注:PCP具有“哈佛”

11、架构,因此除从CMEM中读取指令之外,不能直接访问CMEM。建议用户在初始化之后不应通过FPI总线访问CMEM。 CMEM 保保护护为了允许PCP运行系统苛刻的任务,无论系统的其他部分还是PCP自身发生故障,都要确保PCP可以正确的操作。这意味着必须保护CMEM的中的内容不出现此类故障。CMEM中的内容只可以通过FPI进行修改。因此,保护CMEM即防止FPI对CMEM的非期望写操作。PCP运行的正常模型是在系统初始化时载入程序代码,并且在系统运行期间保持不变。这样,一旦代码在初始化期间已载入,就提供一个简单的锁定方案以防止对CMEM的任何操作。当CMEM载入后(在系统初始化期间

12、),储存器就可以被锁住以使所有来自FPI的写访问都会产生一个错误响应,从而使CMEM的内容不被修改。尽管被保护,但CMEM保持被FPI的可读性。 这一功能由PCP_CPROT寄存器控制(见 页 88)。10.3.3PCP 的的参参数数 RAMPCP 参数 RAM(PRAM)是每个通道程序上下文的本地存储器,还可作为通用数据存储器。PRAM 还可用作 PCP 和主机处理器或其它 FPI 总线主设备之间的通信或数据共享区域。PRAM 的一部分保留用作通道程序的上下文存储区域(CSA),其余部分可分配给外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-6V1.0, 2011-1

13、2TC1728特定通道或者存储通用数据(见 章节 )。可编程 8 位数据指针(DPTR)和 6 位偏移量串联组成任意 PRAM 地址。有效地址为 14 位字地址,可访问 PRAM 的容量高达64 KB。PRAM 类型(SRAM、DRAM 等)和容量与器件的具体实现有关,TC1728 各型号器件中 PRAM(参数 RAM)的类型和容量见页 159。PCP 和 FPI 总线主设备以 32 位(字)宽度访问 PRAM,PRAM 中没有半字或字节访问的概念。然而,FPI 总线主设备必须使用字节地址来访问 PRAM。对于PRAM访问,计算PRAM FPI 地址时需要非常仔细,具体内容见页

14、58。 PRAM 保保护护为了使PCP能够处理系统苛刻的任务,无论系统的其他部分还是PCP自身发生故障,都要确保PCP可以正确的操作。这意味着必须保护PRAM的所有或部分内容不出现此类故障。通过PCP_PPROT寄存器可保护PRAM的所有或部分内容不受FPI写操作影响(见 页89)。也可用该寄存器选择PRAM的一个区域,该区域只能由受保护的PCP的通道程序用。10.3.4FPI 总总线线接接口口PCP 能够通过 FPI 总线接口访问挂在 FPI 总线上的所有外设单元和其他资源。PCP 可作为 FPI 总线从设备,从而其它 FPI 主设备可访问 PCP 的 CMEM 和 PRAM

15、、以及 PCP 控制和状态寄存器。CMEM 和 PRAM 可被认为是挂在 FPI 总线上的存储器,可由 FPI 总线主设备对其进行访问。如果 FPI 总线主设备和 PCP 同时访问 CMEM 或 PRAM,那么外部 FPI 总线主设备占优,从而避免死锁。PCP 访问停滞几个时钟周期,直到 FPI 总线主设备完成访问操作。如果 FPI 总线主设备对 PCP 存储器区进行不可分的读取-修改-回写访问,任何同时发生的对该存储器区(CMEM、PRAM)的 PCP 访问在不可分操作期间停滞。10.3.5PCP 中中断断控控制制单单元元和和服服务务请请求求节节点点PCP 服务请求被设置到系统的服务请求节点

16、之一(SRN)(与外设、CPU、外部中断等相对应的各节点),PCP 将被该服务请求激活。PCP 中断控制单元(PICU)确定当前优先级最高的请求,并将该请求及优先级编号发送至 PCP 处理器内核。当 PCP开始服务该中断请求时,PICU 还将应答请求源。PCP 自身也可通过 PCP 服务请求节点 PSRN 产生服务请求,并将该请求发送给CPU 或PCP。当通道程序被优先级更高的服务请求挂起时,PSRN还用来存储重新启动挂起通道程序时PCP处理器内核所需的所有信息。这些节点操作的详细描述请参见章节 10.6.3。外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-7V1.0,

17、 2011-12TC172810.4PCP 编编程程模模型型可将 PCP 编程模型看作是一组被称为通道程序的自主程序或任务,这些程序共享PCP 的处理资源。通道程序可以是短小、 简单的程序,也可以非常复杂,但它们可始终共存于 PCP 内部。从编程的角度看,一个通道程序由 CMEM 中的指令序列和 PRAM 中的上下文两个独立部分组 成。根据应用任务需要,通道程序使用 PCP 处理器内核的指令集和 GPR(R0 - R7)执 行必要的操作,与各种片上资源和片外系统进行通信。在下面的章节中讨论编程模型的详细信息(还包括 PCP 范围之外的系统环境中的各种异常情况)。10.4.1PCP 的的通通用用

18、寄寄存存器器组组PCP 的程序可访问寄存器文件由 8 个 32 位通用寄存器组成(GPR)。这些寄存器可作为 PCP 指令的一部分直接由 PCP 程序访问,在大多数指令中必须指定源和目的寄存器。本手册引用这些寄存器时表示为 Rn 或 Rn,其中 n = 0-7。表表 23可可直直接接访访问问的的寄寄存存器器寄寄存存器器隐隐含含使使用用功功能能描描述述R0累加器部分算数和逻辑指令的隐含目的寄存器R132 位通用寄存器R2返回地址32 位通用寄存器R332 位通用寄存器R4SRC (源)BCOPY/COPY 指令的源指针R5DST (目的)BCOPY/COPY 指令的目的指针R6CPPN/SRPN

19、/TOS/CNT1CNT1:COPY 的传送计数TOS:服务类型SRPN:8位位域,执行EXIT指令给出的中断优先级CPPN:当前 PCP 优先级编号R7DPTR/标志PRAM数据指针(DPTR)和状态标志外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-8V1.0, 2011-12TC1728R7 是8个当中唯一一个不能完全用作 GPR 的寄存器。R7 的高 16 位不可写入,读取始终返回 0。不过,对 R7 的高 16 位进行写操作时,不会出现错误。注:PCP GPR不能映射到整个地址空间。这些GPR只能由PCP指令直接访问。通道程序执行期间,所有或部分寄存器内容作为

20、通道程序上下文的一部分保存在PRAM中。此时可从PCP外部访问该上下文。 寄寄存存器器 R0R0 可作为一些指令隐含操作数的目的寄存器,详细内容参见各指令具体描述。 寄寄存存器器 R1、R2 和和 R3R1、R2 和 R3 是通用寄存器。根据惯例,使用调用和返回程序结构时,推荐用 R2作为返回地址寄存器。寄寄存存器器 R4 和和 R5寄存器 R4 和 R5 也是通用寄存器。然而,BCOPY/COPY 指令隐含使用 R4 和 R5 作为32位地址指针(R4 为源地址指针,R5 为目的地址指针)。由于 BCOPY/COPY 指令使用这些寄存器作为地址

21、指针,R4 和 R5 值能否被 BCOPY/COPY 指令修改取决于指令设置。外外设设控控制制处处理理器器(PCP)用户手册PCP, V2.0910-9V1.0, 2011-12TC1728寄寄存存器器 R6寄存器 R6 也可用作通用寄存器。不过,有一些指令使用 R6 的部分位域。如果使用 COPY 或 EXIT 指令,那么可选择 R6.CNT1 隐含用作计数器。如果使用 EXIT 指令引发中断,那么在执行 EXIT 指令之前,必须合理设置 R6.SRPN 和 R6.TOS。如果使用中断优先级管理,在执行 EXIT 之前, R6.CPPN 的优先级必须设置为该通道下一次触发中断

22、操作时应当处于的优先级。R6 的寄存器结构如下:PCP 寄寄存存器器 R6复复位位值值:0000 0000H31302928272625242322212019181716CPPNSRPNrwrw1514131211109876543210TOSGEN GENCNT1rwrwrwrw符符号号位位序序号号类类型型功功能能描描述述CPPN31:24rw通通用用/传传递递给给 PICU的的PCP优优先先级级编编号号SRPN23:16rw通通用用/EXIT中中断断的的服服务务请请求求优优先先级级编编号号TOS15:14rw通通用用/EXIT中中断断的的服服务务类类型型。无论 R615为何值,被传送至P

23、CP SRN 时,TOS高位始终强制为 0。GEN13rw通通用用GEN12rw通通用用CNT111:0rw通通用用/COPY或或EXIT指指令令的的外外循循环环计计数数用户手册PCP, V2.0910-11V1.0, 2011-12TC1728外设控制处理器(PCP)寄寄存存器器 R7寄存器 R7 与其它寄存器不同,该寄存器部分位不可写,而事实上对其余位的隐含使用使得R7 不能作为通用寄存器。R7 与传统处理器中的程序状态字作用相似。R7 中存放标志位、通道使能/禁止控制位、PRAM 数据指针(DPTR)。R7 高 16位保留。大部分 PCP 指令根据操作结果更新 R7 中的

24、标志(CN1Z、V、C、N、Z)。各指令更新标志的详细信息见页 136 的表 37。R7 中的标志位保持不变,直至另一条能够更新这些标志位的指令被执行。注:指令对标志位的隐含更新比任何对R7标志位进行的显性数据转移操作占优。 例如,如果用MOV指令将0000FF07H移入R7,那么C(进位),Z(结果为零)和N(结果为负)标志都被写1。不过,MOV指令将根据操作结果隐含更新R7的Z和N标志。由于该值非负且非零,因此该指令的执行将清零R7的Z和N标志。结果是,执行完该MOV指令之后,R7的值变为0000FF04H(即C =1,Z= 0,N=0)。推荐用户只使用SET和CLR指令显性修改R7中的标

25、志位。数据指针 R7.DPTR 提供访问 PRAM 中变量的方法,该指针指向大小为 64字PRAM 存储器段,可由将 PRAM 作为源或目的操作数的指令(xx.P 和 xx.PI 指令) 寻址。8 位 DPTR 和 6 位偏移值(由指令中的立即数或某个寄存器中的值给出)串联组成一个 14 位(字)地址。为了能够寻址多于 64 字的 PRAM 区域,程序可动态更新DPTR 值。注:更新R7.DPTR时需要小心谨慎,确保R7中的其它位(如R7.CEN)不被无意破坏。通道使能位 R7.CEN 可使能或禁止某个通道程序。如果被禁止的通道接收到中断请求,那么强制产生错误退出,错误中断被激活送至 CPU。

26、中断使能控制位 R7.IEN,在通道对通道基础上使能或禁止通道中断。当 R7.IEN 为0时,无论新服务请求的优先级如何,将继续执行原先的通道程序。如果 R7.IEN 为 1, 且条件许可,接收到更高优先级的服务请求时,该通道被挂起。注:R7.IEN的使用参见章节。用户手册PCP, V2.0910-12V1.0, 2011-12外设控制处理器(PCP)TC1728PCP 寄寄存存器器 R7复复位位值值:0000 0000H31302928272625242322212019181716RESr1514131211109876543210DPTRRES CEN IENCNZVC

27、NZrwrwrwrwrwrwrwrwrw符符号号位位序序号号类类型型功功能能描描述述RES31:16r保保留留读取返回0;应写入0。DPTR15:8rw访访问问PRAM的的段段地地址址数数据据指指针针RES7rw保保留留应始终写入0。CEN6rw通通道道启启用用控控制制位位IEN5rw中中断断使使能能0B通道不可中断1B通道可被更高优先级的服务请求挂起CNZ4rw外外部部循循环环计计数数器器1 零零标标志志V3rw溢溢出出标标志志C2rw进进位位标标志志N1rw负负数数标标志志Z0rw零零标标志志用户手册PCP, V2.0910-13V1.0, 2011-12外设控制处理器(PCP)TC172

28、810.4.2上上下下文文和和上上下下文文模模型型初始化之后,PCP 通道程序的指令序列被永久保存(至少是在该应用程序运行期间)在 CMEM 中,数据参数保存在 PRAM 中。无论通道程序空闲或正在执行,这些指令序列 和数据将被保存(当然 PRAM 中的数据变量可能被 PCP 或外部 FPI 总线主设备修改)。不过,PCP GPR 的内容(用作地址指针、数据变量、立即结果等等)通常仅在某指定通道程序运行期间有效。如果执行另一个通道程序,则根据需要重复使用 GPR。因此,不执行通道程序时,需要保存该通道程序的 GPR 状态(称为通道“上下文”)。通道程序执行完毕时,需要保存寄存器内容,再次执行该

29、通道程序之前需要恢复寄存器内容。PCP 能够自动存储和恢复上下文。通道程序结束时,部分或全部寄存器(GPR) 的内容被自动复制到 PRAM 中的指定区域(上下文存储)。如果同一个通道程序被再次 激活,将相同 PRAM 区域中的值复制到对应寄存器中,实现寄存器内容恢复操作(上下 文恢复)。用于存储和恢复上下文操作的 PRAM 指定区域被称为 CSA。每个通道程序在 CSA中均有独立的、预先定义的区域。当 PCP 接受一个服务请求时,由该服务请求相关的优先级编号(SRPN)来选择通道程序和对应的 CSA 区域。 上上下下文文模模型型发生上下文切换时,上下文模型选择使用部分或全部寄存

30、器来进行上下文保存和恢复。为了适应不同应用、合理利用 PRAM 空间,PCP 提供 3 种上下文模型:完全上下文模型:每个通道使用 8 个寄存器(832 位字)保存/恢复上下文 小型上下文模型:每个通道使用 4 个寄存器(432 位字)保存/恢复上下文 最小上下文模型:每个通道使用 2 个寄存器(232 位字)保存/恢复上下文如图 17 所示,R0-R7 组成一个通道程序的完全上下文。R4-R7 组成小型上下文,该模型支持 DMA 通道的正确操作,还适用于两次通道程序调用之间,不需在上下文中保存大量数据的通道程序。最小上下文模型只保存和恢复 R6 和 R7。用户手册PCP, V2.0910-1

31、4V1.0, 2011-12外设控制处理器(PCP)TC1728为了区分寄存器实际内容和保存在 PRAM 上下文区域中的内容,在手册中用术语CRx 表示存储在 PRAM 上下文区域的寄存器值。进行上下文保存和恢复时,始终以一种特殊方式处理寄存器 R6 和 R7,详情参见章节 。由位域(PCP_CS.CS)选择上下文模型,该位域为全局设置(即,所选择的上下文模型适用于所有通道)。一旦选定上下文模型(在 PCP 配置期间选择)并启动 PCP操作,那么 PCP 必须一直使用该上下文模型。在 PCP 工作期间试图改变上下文模型将会导致无效的上下文恢复操作,进而导致无效的 PCP 操作。

32、选择小型和最小上下文模型时,未用于保存和恢复的寄存器(图 17 阴影部分)可看作全局寄存器,任何通道程序都可以使用或改变这些寄存器的值,或当作常数引用 例如作为基址指针(详细内容见章节 10.20.2)。注:使用中断嵌套时,选择小型和最小上下文模型需要特别小心使用(见页153)。用户手册PCP, V2.0910-15V1.0, 2011-12外设控制处理器(PCP)TC1728R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R4R5R6R7R0R1R2R3R4R5R6R7在在PRAM中中储储存存的的上上下下文文PCP 寄寄存存器器组组完全上下文模

33、型恢复8个字保存小型上下文模型恢复4个字保存最小上下文模型恢复R62个字R7保存MCA06136图图17PCP 上上下下文文模模型型用户手册PCP, V2.0910-16V1.0, 2011-12外设控制处理器(PCP)TC1728 上上下下文文保保存存区区域域上下文保存区域(CSA)是 PRAM 预留区域,用于保存所有通道程序上下文(未执行任何特定通道程序时)。每个通道的上下文根据通道编号保存在 CSA 的特 定区域。通道编号等于服务请求优先级编号(SRPN)。PCP 使用该编号计算相关通道 程序的上下文起始地址。上下文的大小由 PCP 初始化期间设置的 PCP 上下文模型决

34、 定。因为所有通道使用相同的上下文大小,某个特定通道上下文的 PRAM 地址(字地 址)可由通道号乘以上下文的寄存器个数(完全上下文模型为 8,小型上下文模型为4,最小上下文模型为 2)计算得到。图 18 给出对应于 3 种上下文模型的 PRAM 结构,由此可见改变上下文模型的同时也改变了 CSA 内所有区域的基地址。因此,只能 在 PCP 初始化时选定上下文模型,PCP 操作期间不能改变上下文模型。PRAM 的 CSA 起始地址为 00H,并向高地址方向生成该区域。CSA 被划分成大小相同的区域,由上下文模型决定这些区域的大小。由服务请求的优先级编号(SRPN)寻址保存相关通道程序上下文的区

35、域。由于在 TriCore 架构中,SRPN 为 00H的服务请求被认为是无效的,因此从不使用 CSA 的底端(上下文区域 0)保存上下文。CSA 的总容量由给定系统中的上下文模型和所使用的服务请求个数共同决定。服务请求节点(可激活中断发送给 PCP)使用的优先级编号必须对应 PRAM 中的专用上下 文区域。PRAM 中上下文区域所使用的最高地址由发送给 PCP 的服务请求的最高优先 级编号决定。可用的优先级范围还由器件中所实现的 PRAM 容量以及 PRAM 中保存其它变量和全局数据所需的空间共同决定。TC1728 中实现的 PRAM 容量见页 159。例如, 容量为2 KB 的 PRAM

36、仅用作 CSA 时,可存储 多达255 个最小上下文,PCP 服务请求的最高SRPN 为 255(注意,从不使用 SRPN 为 0 的请求和对应的上下文区域,有效 SRPN 以及上下文和通道编号范围从 1 到 255);若选择小型上下文模型,可保存 127 个上下 文,最高可用 SRPN 为 127;若选择完全上下文模型,允许保存 63 个上下文,最高可 用SRPN 为 63。因此,一定不能产生会导致从可用的 PRAM 区域之外加载上下文的 PCP中断请求。如果允许发生此类情况,将会导致无效的 PCP 操作。可按以下方式配 置PCP:若接收到的中断请求会导致从可用的 PRAM 区域之外加载上下

37、文,则强制产生一个错误退出,激活错误中断并发送至 CPU(见页 44)。用户手册PCP, V2.0910-17V1.0, 2011-12外设控制处理器(PCP)TC1728若 PRAM 的部分区域用于存储其它变量和全局数据,则 CSA 的可用空间和有效SRPN 范围会缩小。为了最优使用 PRAM,建议用户向高地址方向、使用连续的区域(中间没有任何“空洞”)生成 CSA,范围在1.Max的所有 SRPN 实际上都用于存储PCP 中断请求。CSA 中未使用的区域(也就是说,CSA 底端的未使用区域和所有未使用通道对应的的上下文区域)也不能用于存储通用变量。用户手册PCP, V2.0910-18V1

38、.0, 2011-12外设控制处理器(PCP)TC1728用户手册PCP, V2.0910-19V1.0, 2011-12外设控制处理器(PCP)TC1728考虑以下因素有助于用户为给定的应用选择合适的上下文模型:选择小型或者最小上下文模型时,不能自动保存和恢复的部分寄存器仍需要用户通过 显性加载和存储指令完成。对于大多数通道不需要保存完全上下文、只有部分通道需要保存更多上下文的应用,该特性是具有优势的。在这种情况下,可使用小型上下文模型,对于需要保存/恢复更多上下文的通道,用户使用显性加载和存储指令进行保存/恢复操作。如果采用下述思路设计通道程序:仅使用已经被自动恢复的寄存器进行最初的 实时

39、响应操作,那么该特性尤其具有优势。由于对中断服务的时序要求不再那么严格,则可通过常规的 加载 指令从 PRAM 中进一步恢复更多寄存器内容。当然,在退出该通道程序之前,寄存器的内容需要通过 常规存储指令保存。注:当最小或小型上下文模型和中断嵌套配合使用时,用户需要特别小心(见页153)。选择上下文模型的准则罗列如下: 给定型号产品的 PRAM 容量系统需要的通道数目(=SRPN) 保存通用变量和全局数据的 PRAM 容量 大多数最重要通道需要快速保存/恢复的上下文大小(寄存器内容)始终按照正常方式恢复寄存器 R0 到 R5 (根据上下文大小),寄存器 R6 和 R7 的恢复方式需要专门讨论。上

40、下文区域中 CR7 保存两部分信息:寄存器 R7 的低位部分和 通道的PC 值。与此类似,上下文区域的 CR6 也保存两部分信息:寄存器 R6 的恢复值和通道的操作优先级(CPPN)。下面两节着重介绍恢复/保存操作。 CR6 和和 CR7 上上下下文文恢恢复复操操作作根据启动的是一个“新”通道程序(即,接收到新服务请求之后启动一个通道程序),还是一个“挂起”通道程序(即,该通道程序之前被更高优先级的通道程序挂起,现在需要重新启动),R6 和 R7 上下文恢复操作有所不同。另外,当启动一个“新”通道程序时,上下文的恢复操作取决于所选择的通道启动模式(见页27)。外设控制处理器(P

41、CP)用户手册PCP, V2.0910-20V1.0, 2011-12TC1728通通道道恢恢复复模模式式选择通道恢复模式时(见页 28),图 19 给出“新”通道程序的上下文恢复操作。从 CR731:16加载 PC,从 CR715:0加载 R7 低位部分。通道的操作优先级由CR631:24给出,从 CR6 中加载 R6 全部内容。外设控制处理器(PCP)用户手册PCP, V2.0910-21V1.0, 2011-12TC1728通通道道重重启启模模式式选择通道重启模式时(见页 27),图 20 给出“新”通道程序的上下文恢复操作。通道入口表地址加载到 PC,从 CR715:0 加载 R7 低

42、位部分。CR7的高位部分被丢弃。通道的操作优先级由 CR631:24给出,从 CR6 加载 R6 全部内容。外设控制处理器(PCP)用户手册PCP, V2.0910-22V1.0, 2011-12TC1728挂挂起起通通道道重重启启图 21 给出“挂起”通道程序的上下文恢复操作。从 CR731:16中加载 PC(与通道启动模式无关),从 CR715:0加载 R7 低位部分。从 CR6 中加载 R6 全部内容。 该图还说明如何从服务请求节点中恢复通道的操作优先级(PCP_ICR.CPPN),服务请求节点用于存储挂起该服务请求的控制信息(见页 98)。外设控制处理器(PCP)用户手册PCP, V2

43、.0910-23V1.0, 2011-12TC1728CR6 和和 CR7的的上上下下文文保保存存操操作作根据保存操作的起因(由通道退出引起,还是通道被优先级更高的通道程序挂起而引起),R6和R7的上下文保存操作有所不同。通通道道恢恢复复模模式式选择通道恢复模式时,图 22给出退出通道程序时的上下文保存操作。16位PC值和R7的低16位被写入CR7。将R6的值写入CR6。外设控制处理器(PCP)用户手册PCP, V2.0910-24V1.0, 2011-12TC1728通通道道重重启启模模式式选择通道重启模式时,图 23 给出通道退出时的上下文保存操作。除 PC 值被丢弃、将适

44、当的通道入口表地址写入 CR731:16之外,其它保存操作和通道恢复模式相同。外设控制处理器(PCP)用户手册PCP, V2.0910-25V1.0, 2011-12TC1728通通道道挂挂起起图 24 给出挂起通道的上下文保存操作。除需要产生一个中断请求随后用来重启通道之外,与通道恢复模式的上下文保存操作相同。该操作使用一个特殊的扩展 SRN(共 3 个)(见页 98)来保存该中断请求。通道编号(SRPN)、操作优先级 (CPPN)(该通道被挂起之前操作的优先级)作为中断请求的一部分被保存。该操作和挂起通道的恢复操作见图 21,允许通道被更高优先级的通道暂时挂起。外设控制处理器(PCP)用户

45、手册PCP, V2.0910-26V1.0, 2011-12TC1728 上上下下文文初初始始化化开始操作之前,程序员需要配置每个通道程序的上下文。因为必须通过 FPI 总线对PCP 进行写操作,所以 从FPI 总线的角度来准确理解每个通道程序的上下文地址非常重要(详细内容见页59)。 上上下下文文保保存存操操作作优优化化PCP 具有上下文切换优化策略,由上下文加载优化和存储优化两部分组成。若上下文加载操作所启动的通道也就是 PCP 上次运行的通道,则 PCP GPR 中已经包含该通 道的上下文。在这种情况下,不需要重新加载上下文(即无需执行上下文加载,PCP

46、能够从代码的合适位置立即继续运行)。上下文保存期间(即,由 EXIT 或 DEBUG 指令、或为了响应一个更高优先级的通道中断而使 PCP 退出一个通道程序),只有那些上下文加载之后被更新(即,写入)的寄存器才保存到 CSA 中。外设控制处理器(PCP)用户手册PCP, V2.0910-27V1.0, 2011-12TC172810.4.3通通道道程程序序PCP CMEM 存储每个 PCP 通道的指令序列,即通道程序。各 PCP 服务请求对应的通道程序可看作是独立且分离的程序。和传统处理器不同,TC1728 PCP 中没有定义和运行后台程序。接收到某个通道程序的服务请求时,PCP 需要确定需要

47、激活的通道程序和执行该通道程序的起始地址。为了满足不同应用的需要,PCP 架构提供了两种进入通道程序的方式: 通道重启模式通道恢复模式通道重启模式强制 PCP 从 CMEM 中已知的固定地址(该地址和中断编号对应)启动每个通道程序。和某中断相关的通道程序入口处,通常放置一个跳转指令,指向通道程序的主体。该结构与传统的中断向量表相同。通道重启模式下,每次产生通道请求时,始终从中断入口表中同一个地址处开始执行通道代码。通道恢复模式允许 PCP 从 PC 地址处(从恢复的通道程序上下文中得到)开始执行通道程序。该模式允许代码继续运行并从任意地址处启动,还可实现中断驱动的状态机,甚至可实现具有不同上下

48、文的多个程序之间的代码共享。通道模式(共两种)选择属于全局设置,即该设置适用于所有通道。由 PCP 配置寄存器PCP_CS 中的位 PCP_CS.RCB 进行选择(见页70)。 通通道道重重启启模模式式PCP_CS.RCB = 1 选择通道重启模式。该模式下,CMEM 被视为分成中断入口表(位 于 CMEM 底端)和一般代码存储区(位于中断入口表之上)两部分。中断入口表中每个通道有两个指令槽(216 位)。接收到 PCP 服务请求时,PCP 利用服务请求的 SRPN 计算通道的起始 PC(PC = 2SRPN),然后开始执行该 地址上的指令。如果该通道程序需要的指令多于 2 条

49、,那么中断入口表中对应的两个指令必须有一条是跳转指令,指向通道代码的其余部分。PCP 继续执行通道代码,直到检测到退出情况或者优先级更高的中断。外设控制处理器(PCP)用户手册PCP, V2.0910-28V1.0, 2011-12TC1728PCP 工作在通道重启模式时,建议所有通道的所有 EXIT 指令应当使用 EP = 0 的设置(见页 117)。请注意:使用通道重启模式时,通道入口表必须为每个通道提供有效入口地址。选择通道重启模式时,图 25 给出 CMEM 结构示例。如果提供的入口地址无效,将会导致PCP 操作无效。 通通道道恢恢复复模模式式PCP_CS.RCB =

50、0 选择通道恢复模式。该模式下,用户可随意确定下一次调用某 通道程序时,该通道程序起始地址。为了实现该特性,PC 作为 PCP 通道上下文的一部分被保存和恢复。当全局选择通道恢复模式时,可通过配置每条 EXIT 指令决定下一次触发通道时,通道的起始地址(见页 117),这种特性为用户提供了极大的灵活性。当设置 EP = 0时,保存在通道上下文中的 PC 值(保存在 CPC 中)是通道入口表中的某个适当位置地址。下次触发时,强制通道从通道入口表中该地址处启动。当设置 EP = 1 时,保存在通道上下文中的 PC 值为紧跟在 EXIT 指令之后的指令地址。在 EXIT 指令中设置 EP = x 允

51、许部分通道设置为通道重启策略,其它通道设置为通道恢复策略,还允许单个通道在不同调用时,使用不同的策略。注:当选择通道恢复模式时,通道入口表必须为使用EXIT指令、设置EP = 0的每个通道提供有效的入口地址。无效的入口地址会导致无效的PCP操作。外设控制处理器(PCP)用户手册PCP, V2.0910-29V1.0, 2011-12TC1728注:上图中CMEM地址偏移为PCP指令(半字)偏移地址。要得到FPI地址偏移(字节偏移),必须将半字偏移乘以2。外设控制处理器(PCP)用户手册PCP, V2.0910-30V1.0, 2011-12TC172810.5PCP 操操作作本节描述如何初始化

52、 PCP,如何调用通道程序以及 PCP 的一般操作。10.5.1PCP 初初始始化化TC1728 初次上电或复位时,PCP 处于静止状态。使能通道程序之前,必须由 FPI总线主设备(典型代表如CPU)对整个 PCP 模块进行初始化,步骤如下: 配置全局 PCP 寄存器初始化 PCP 控制和状态寄存器(PCP_CS.EN = 0)通过寄存器 PCP_ICR 配置中断系统 将通道程序加载到 CMEM 中(如果需要/正如需要)将通道程序的初始上下文加载到 PRAM 中(完全上下文模型为R0 - R7,小型上下文模型为 R4 - R7,最小上下文模型为 R6 -R7)。只需要加载首次调用通道程序时要用

53、到其初始值的那些寄存器。根据 PCP_CS.RCB 值,可能还需要加载初始 PC 值。未使用通道上下文中的 R7 清零设置 PCP_CS.EN = 1,使能 PCP 操作完成上述初始化步骤之后,PCP 可以开始接收中断并执行通道程序。10.5.2通通道道触触发发和和上上下下文文恢恢复复操操作作出现下列情况之一时,启动通道程序:当前一轮 PCP 中断仲裁确定了获胜的中断编号(SRPN)、且 PCP 处于静止状态(已退出先前的通道并已存储该通道的上下文)。 当前一轮 PCP 中断仲裁确定了获胜的中断编号SRPN(必须大于当前通道优先级,即,SRPN CPPN),若PSRN 中有合适的服务请求节点可

54、用于存储挂起的中 断请求,且当前通道可被中断(R7.IEN = 1),见页35。如果出现上述情况,胜出的 SRPN 成为当前中断,在新通道开始工作之前,进行上下文恢复操作,步骤如下:通道的上下文(胜出的 SRPN)从 CSA 中相应地址处恢复到 GPR 中。根据PCP_CS.CS 设置,执行完全上下文、小型上下文或最小上下文恢复操作。 PCP 的新优先级由 R6.CPPN 位域给出,并被写入 PCP_ICR.CPPN。该值在 调试时非常有用,因为可从 PCP_ICR中读取当前执行的通道程序或者上一次执行的通道程序的 CPPN。启动通道程序之后,R6 值可能改变但生效的 CPPN外设控制处理器(

55、PCP)用户手册PCP, V2.0910-31V1.0, 2011-12TC1728值并不改变,因为直到下次调用该通道程序之前,更新 R6.CPPN 值的操作都是无效的。如果 R7.CEN 清零(0),由于禁止通道程序被触发,因此产生错误,PCP_ES.DCR 标志置位,指示出现该错误,通道程序执行错误退出(见页 31)。 如果 R7.CEN 置位(1),那么从恢复的 PC 值或通道入口表的中断程序地址处(由 PCP_CS.RCB 值决定)开始执行代码。通道退出之前 PCP 的最近状态是执行通道“N”(SRPN= “N”),且当前服务请求的优先级也是 SRPN = “N”的情况下,需要特别注意

56、切换上下文所需的时钟周期 数。在这种情况下,PCP 处理器内核不应加载上下文内容(因为 PCP GPR 已经包含正确内容),只需从当前的地址和状态继续执行通道程序(注意如果 PCP_CS.RCB = 1, 那么 PC 值应设置为正确的入口地址)。10.5.3通通道道退退出出和和上上下下文文保保存存操操作作通道程序终止时,必须保存其上下文,以下三种情况会终止通道程序。执行 EXIT 指令(正常退出) 出现错误 执行 DEBUG(调试)指令(可选择通道终止)。只能在 DEBUG(调试)模式下使用 DEBUG 指令,否则会产生“非法操作”(IOP)错误。可能引起通道终止的事件详述见下面各节。10.5

57、.3.1 正正常常退退出出正常情况下,通过执行 EXIT 指令结束通道程序。该指令的几个字段允许用户指定通道退出操作期间执行的一些可选动作(见页 117)。这些可选操作包括:递减计数器 CNT1 为下次通道调用设置起始 PC 值,可以是下一条指令地址(通道恢复模式)或通道入口地址(通道重启模式) 禁止后续调用该通道 产生中断请求发送给 CPU 或 PCP 本身执行 EXIT 指令时,发生以下操作:如果设置 EC = 1,计数器 R6.CNT1递减 计数且更新 CN1Z 标志。外设控制处理器(PCP)用户手册PCP, V2.0910-32V1.0, 2011-12TC1728 如果设置 ST =

58、 1,位 R7.CEN(通道使能)被清零(即,该通道被禁止) 如果设置 EP = 0 或 PCP_CS.RCB= 1(选择通道重启模式),PCP 程序计数器被保存到上下文的 CR7中,PC 需设置为合适的通道入口表地址。如果EP = 1 且 PCP_CS.RCB = 1(选择通道恢复模式),PCP 程序计数器被保存在上下文 CR7 中,PC 需设置为紧邻 EXIT 指令的下一条指令的地址。 如果设置 INT =1 且特定条件 cc_B 为真,则根据 R6.SRPN 中的 SRPN 值产生一个中断请求。该中断请求被送至寄存器 PCP_SRCx,其中 x 由 R6.TOS 和空闲入口列表共同决定,

59、这样可根据寄存器 R6.SRPN 的值有条件的产生发送给CPU 或 PCP 的服务请求。 通道程序的上下文(包括由 EXIT 序列引起的对所有寄存器的修改)被保存到PRAM CAS(上下文保存区域) 的合适位置。根据 PCP_CS.CS 的设置,使用完全、小型或最小上 下文模型。优化上下文保存所需的时钟周期数时需要特别注意。上下文保存期间,PCP 处理器内核只需要保存那些从上次执行上下文恢复之后被更新的寄存器。注:执行EXIT指令之前,必须特别注意R6和R7的值。发出一个中断请求时, 用户必须确保R6.SRPN和R6.TOS包含产生该中断请求所需的正确值。当使用外部循环计数器(CNT1)时,用

60、户必须确保R6.CNT1能够提供所需功能。当使用中断优先级管理时,用户必须确保R6.CPPN中包含下一次通道调用时,该通道的中断优先级。如果该通道需要被再次调用,用户必须确保通道使能位(R7.CEN)置位。 错错误误引引起起的的通通道道退退出出有多种原因(如通道程序执行了无效的操作码,或出现 FPI 总线错误)可导致PCP出错。出现错误情况时,PCP 错误状态寄存器(PCP_CS)被更新以指示该错误,通道程序被中止。错误退出序列如下:通道使能位 R7.CEN 被清零。这意味着将不能重新启动通道程序,直到另一个FPI 总线主设备重新配置被保存的通道程序上下文,再次置位 CR7.C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论