这8位指定器件的类型,例如,基于Flash的器件。 基于Flash的器件。 其它值保留。 7:0 PARTNO 这8位指定器件的特性组合,如下所示: 0x00CF F28027 PT 0x00C7 F28026 PT 0x00CE F28025 PT 0x00C6 F28024 PT 0x00CD F28023 DA 0x00C5 F28022 DA (1)
复位值取决于器件,就如寄存器描述中指示的一样。 表 2.49 CLASSID寄存器域描述
值(1) 描述 这8位指定器件的特性组合,如下所示: 0x00CF F28027 TMS320F2802x 32K×16 Flash器件 0x00C7 F28026 TMS320F2802x 16K×16 Flash器件 0x00CF F28025 TMS320F2802x 32K×16 Flash器件 0x00C7 F28024 TMS320F2802x 16K×16 Flash器件 0x00CF F28023 TMS320F2802x 32K×16 Flash器件 0x00C7 F28022 TMS320F2802x 16K×16 Flash器件 (1)
复位值取决于器件,就如寄存器描述中指示的一样。
位 7:0 域 CLASSID 15-8 PARTTYPE 0x00
图 2.34 REVID寄存器 表 2.50 REVID寄存器域描述
值 描述 (1) 这16位指定特定器件的硅版本号,这个编号 总是从第一个硅版本的0x0000开始,之后再根0x0000 据后面的修订递增。 硅版本0 - TMX (1)
复位值取决于硅版本,就如寄存器域描述中指示的一样。 2.7.4 先写后读保护
位 15:0 域 REVID 在0x4000 – 0x8000的存储器地址范围内,后面跟随读操作的CPU写操作被保护起来(操作顺序执行,不按照自然的管道次序执行)。对于某些外设操作,这种保护很有必要。
例如:下面的代码行执行一次寄存器1(REG1)单元的写操作,接下来的指令执行一次寄存器2(REG2)单元的读操作。在处理器存储器总线上,块保护被禁能,
53
读操作在写操作之前发布,如下所示。
MOV @REG1,AL ---------+
TBIT @REG2,#BIT_X ---------|-------> 读
+-------> 写
如果块保护被使能,在写操作出现之前读操作被停止,如下所示:
MOV @REG1,AL ---------+ TBIT @REG2,#BIT_X ---------|-----+
+-----|---> 写
+---> 读
54
第3章 外设中断扩展(PIE)
外设中断扩展(PIE)模块将许多中断源复用成一个较小的中断输入集合。PIE模块可以支持96个单个的中断,这些中断组成8个块。每组中断馈送到12个内核中断线(INT1~INT12)中的一条。96个中断中的每一个都各自被保存在专有RAM模块中的向量支持着,用户可以修改这个RAM模块。CPU在服务中断时自动提取相应的中断向量。取出向量并保存重要的CPU寄存器需要花费9个CPU时钟周期。因此,CPU可以立刻响应中断事件。中断的优先顺序由硬件和软件控制。每个单个的中断可以在PIE模块中被使能/禁能。 3.1 PIE控制器的概述
在CPU级,28x CPU支持1个非可屏蔽中断(NMI)和16个可屏蔽的优先中断请求(INT1 – INT14,RTOSINT和DLOGINT)。28x器件有许多外设,每个外设能够产生一个或更多中断来响应外设级的许多事件。由于CPU没有足够的能力在CPU级处理所有的外设中断请求,所以需要一个集中式外设中断扩展(PIE)控制器来判断来自各个源(例如,外设和其它外部引脚)的中断请求。
PIE向量表用来保存系统内每个中断服务程序(ISR)的地址(向量)。每个中断源(包括所有多路复用和非多路复用的中断在内)有一个向量。用户在器件初始化过程中填充向量表,并可以在操作过程中更新它。
3.1.1 中断操作顺序
图 3.1所示为所有多路复用的PIE中断的中断操作顺序。不复用的中断源直接传送到CPU。
图 3.1 概述:使用PIE模块多路复用中断
? 外设级
外设中出现一个中断产生的事件。该事件对应的中断标志位(IF)在寄存器中被置位。
如果相应的中断使能(IE)位被置位,则外设向PIE控制器产生一个中断请求。
55
如果中断在外设级未被使能,IF就保持置位,直到被软件清除。如果中断稍后被使能,并且中断标志仍然置位,中断请求就提交到PIE。
外设寄存器中的中断标志必须手动清除。有关特定外设的更多信息请见外设参考指南。
? PIE级
PIE模块将8个外设和外部引脚中断多路复用成一个CPU中断。这些中断分成12组:PIE组1 – PIE组12。一个组内的中断多路复用成一个CPU中断。例如,PIE组1被多路复用成CPU中断1(INT1),PIE组12被复用成CPU中断2(INT12)。连接到剩余CPU中断的中断源不复用。对于非多路复用的中断,PIE直接将中断请求传递给CPU。
对于多路复用的中断源,PIE模块中的每个中断有一个相关的标志寄存器(PIEIFRx)和使能(PIEIERx)寄存器(x = PIE组1 – PIE组12)。每个位(表示为y)对应组内8个多路复用中断中的一个。这样,PIEIFRx.y和PIEIERx.y对应PIE组x(x = 1-12)的中断y(y = 1-8)。另外,每个PIE中断组还有一个应答位(PIEACK),称为PIEACKx(x = 1-12)。图 3.2描述了各种PIEIFR和PIEIER寄存器条件下PIE硬件的行为。
一旦向PIE控制器作出请求,相应的PIE中断标志(PIEIFRx.y)位就被置位。如果PIE中断使能(PIEIERx.y)位也为了指定的中断而置位,PIE就检查对应的PIEACKx位来确定CPU是否准备好处理来自该组的中断。如果该组的PIEACKx位被清除,PIE就将中断请求发送给CPU。如果PIEACKx被置位,PIE就等到它被清零才将INTx的请求发送出去。详情请见3.3节。
? CPU级
一旦请求发送到CPU,对应INTx的CPU级中断标志(IFR)就被设置。在标志锁存到IFR中以后,并不服务相应的中断,直至CPU中断使能(IER)寄存器或调试中断使能寄存器(DBGIER)以及全局中断屏蔽(INTM)位将中断使能。
56