C2000 CLA 常见问题解答
1. CLA 是什么?
CLA 是一款与主 CPU 并行运行的 32 位浮点数学加速器。
2. CLA 独立于主 CPU 之外吗?
是的。一旦 CLA 被主 CPU 配置,它可以独立于主 CPU 之外执行算法。 CLA 有自己的总线结构、寄存器组、管线和处理单元。此外,CLA 可直接访问 ePWM,比较器和 ADC 结果寄存器。这使得它非常适合于处理时间关键控制循环,但是它也可以用于滤波或数学算法。
3. CLA是中断驱动的吗?
是的,2803x CLA 响应 ADC,ePWM 和 CPU 定时器 0 中断。其他器件可对其他系统中断做出响应。相
4. CLA 中断的响应速度怎样?
赵国是现在的什么地方
CLA 不处理非时间关键中断(例如通信端口),并且没有中断嵌套。此外,CLA 直接接收中断,而非通过外设中断扩展块 (PIE) 接收。正是由于这一点,CLA 具有极低的中断响应延迟。在中断之后的第七个周期上,第一条指令将位于管线的解码 2 (D2) 阶段。此外,只要 ADC 结果寄存器可用,CLA 就能够轻松地读
5. CLA 有寄存器吗?
有的,CLA 有自己的独立寄存器组。 CLA 寄存器可分为两组:
配置寄存器
这些寄存器中的一部分被主 C28x CPU 用来配置 CLA。其他寄存器为主 CPU 提供状态信息。例如,哪个中断已经被标记或者现在哪个任务正在运行。
执行寄存器。
这些寄存器包括四个浮点结果寄存器、两个辅助寄存器、一个状态寄存器和一个程序计数器。这些寄存器可由主 C28x CPU 读取,但是不能被 C28x CPU 写入。
6. CLA 有累加器吗?
没有单个寄存器被指定为累加器 - 运算的结果进入结果寄存器 (MR0 - MR3)。
7. CLA 的运行频率是多少?
2803x,2806x 和 2805x 器件上的 CLA 的运行速度与 CPU 的运行速度一样 (SYSCLKOUT)。其他器件也许会有所不同。相关信息请参考你的器件专用文档。
8. 复位时 CLA 的状态是什么?
到 CLA 的时钟被禁用,并且所有 CLA 寄存器被清零。在被主 CPU 配置为处理中断前,CLA 将不会开始处理中断。
9. 如何配置 CLA?
与任何其他模块或外设一样,CLA 由主 CPU 进行配置。
10. 我想知道有哪些代码开发工具可用,以及我如何调试针对 CLA 的代码。
请参考C2000 CLA调试 FAQ
11. ‘任务’是什么?
北京市旅游景点
CLA 任务是由 CLA 执行的中断响应例程。
教师节花
12. 支持多少个中断?
2803x 和 2806x CLA 都支持 8 个中断。
13. 哪些中断能够启动一个任务?
外设:每个任务具有可以触发它的特定外设中断。主 CPU 选择 MPISRCSEL 1 寄存器中的哪个中断?
需要理解的重要一点是触发资源只是任务的启动机制。触发资源不限制任务可进行的操作。例如,任务 1 可以读取任一/多个 ADC 结果寄存器,并且修改任何 ePWM1,ePWM2,PWM7 寄存器,即使此任务是由 EPWM1_INT 启动时也是如此。
下面显示了 2803x 和 2806x 上的可用触发值。其他器件也许会有所不同。相关信息请参考你的器件专用
文档。
在 2803x 上中断触发值分配如下:
∙中断 1 = 任务 1 = ADCINT1 或 EPWM1_INT 或只为软件
∙中断 2 = 任务 2 = ADCINT2 或 EPWM2_INT 或只为软件
∙中断 3 = 任务 3 = ADCINT3 或 EPWM3_INT 或只为软件
∙中断 4 = 任务 4 = ADCINT4 或 EPWM4_INT 或只为软件
∙中断 5 = 任务 5 = ADCINT5 或 EPWM5_INT 或只为软件
∙中断 6 = 任务 6 = ADCINT6 或 EPWM6_INT 或只为软件
∙中断 7 = 任务 7 = ADCINT7 或 EPWM7_INT 或只为软件
∙中断 8 = 任务 8 = ADCINT8 或 CPU 定时器 0 或只为软件
在 2806x 上中断触发值分配如下:
∙中断 1 = 任务 1 = ADCINT1 或 EPWM1_INT 或只为软件
∙中断 2 = 任务 2 = ADCINT2 或 EPWM2_INT 或只为软件
∙中断 3 = 任务 3 = ADCINT3 或 EPWM3_INT 或只为软件
∙中断 4 = 任务 4 = ADCINT4 或 EPWM4_INT 或 eQEP1/2 或 ECAP1/2/3 或只为软件
∙中断 5 = 任务 5 = ADCINT5 或 EPWM5_INT 或 eQEP1/2 或 ECAP1/2/3 或只为软件
∙中断 6 = 任务 6 = ADCINT6 或 EPWM6_INT 或 eQEP1/2 或 ECAP1/2/3 或只为软件
∙中断 7 = 任务 7 = ADCINT7 或 EPWM7_INT 或 eQEP1/2 或 ECAP1/2/3 或只为软件
∙中断 8 = 任务 8 = ADCINT8 或 CPU 定时器或 eQEP1/2 或 ECAP1/2/3 或只为软件
14. 主 CPU 能够通过软件启动任务吗?
可以!主 CPU 可以使用 IACK #16bit 指令随时标记一个中断。例如,IACK 0x003 将标记中断 1 和中断 2。这与强制寄存器 (MIFRC) 中的设置位一样。
15. 我试图用IACK 指令来强制任务执行,但是不起作用。什么地方出错了吗?
∙请确保你已经在 MICTL 寄存器启用这个功能。
∙请确保在 MIER 寄存器中启用此中断。
∙请确保你在使用正确的 IACK 自变量。例如,IACK #0x0003 将标记中断 1(位 0)和中断 2(位1)。
十堰旅游
16. 如果两个中断同时出现,哪个先执行呢?
被标记(MIFR 寄存器)且被使能(MIER 寄存器)的最高优先级任务被执行。中断 1 / 任务 1 具有最高优先级,而中断 8 / 任务 8 的优先级最低。
17. 你可以嵌套 CLA 中断吗?
不可以。CLA 任务在它完成后执行。一旦一个任务完成,那么被标记且被使能的最高优先级中断将自动开始。
18. CLA 能够中断主 CPU 吗?
CLA 将发送一个中断到 PIE(外设中断扩展块)来告知主 CPU 一个任务已经完成。每个任务在 PIE 中有一个相关矢量。这个中断在相关矢量完成时自动触发。例如,当任务 1 完成时,PIE 中的 CLA1_INIT 将被标记。
PIE 中还有专门用于浮点上溢和下溢情况的中断。
19. 主 CPU 能够终止任务吗?
可以。如果一个中断已经被标记,但是任务还未运行,那么主 CPU 可以使用 MICLR 寄存器清除此标记。如果任务已经运行,那么一个软复位(在 MCTL 中)将终止此任务并将 MIER 寄存器清零。如果你希望将所有 CLA 寄存器清零,你可以使用 MCTL 寄存器中的硬复位选项。
20. 每个任务的起始地址是什么?起始地址是固定的吗?
起始地址是可配置的。每个任务具有一个相关中断矢量(MVECT1 至 MVECT8)。这个矢量保存任务的起始地址(作为第一个程序位置的偏移)。
21. 任务有大小限制吗?
没有限制,除了针对所有任务的全部指令需要与器件 CLA 程序存储器的大小相匹配。所有 CLA 指令是 32 位的,所以在 4k x 16 的程序空间内,你可以拥有大约 2k 的 CLA 指令。
其他器件的准确程序存储器数量和程序计数器大小会有所不同。相关信息请参考你的器件专用文档。
22. 我如何标明一个任务的末尾?
在一个任务开始后,CLA 将执行指令,直到遇到 "MSTOP" 指令。 MSTOP 表示任务的末尾。
23. CLA 自己可以标记其他任务吗?
CLA 不能对它自己的配置寄存器进行写入操作,所以它不能通过对强制寄存器的写入来启动一个任务。然而,它可以写入ePWM 寄存器,所以,从技术角度讲,它可以强制生成来自其中一个ePWM 模块的中断。主 CPU 可以在任务完成时获得一个中断。在这个中断内,你可以使用 IACK 指令启动另外一个任务。
24. 如果 CLA 被配置为对ACDINT1 做出响应,那么 CPU 也能做出响应吗?可以。中断被发送至 CLA 和 PIE,所以它们中的一个或者它们两个都可以做出响应。
25. CLA 可直接访问哪个外设?
下面显示了 CLA 在 2803x 和 2805x 上能够访问的外设。在某些器件上会提供其他外设。相关信息请参考
你的器件专用文档。太空生活趣事
2803x
CLA 可直接访问 ADC 结果,ePWM + HRPWM 和比较器寄存器。
2806x
CLA 可直接访问 ADC 结果,ePWM + HRPWM,eCAP,eQEP 和比较器寄存器。
26. 这些寄存器中你所提到的某些寄存器受到主 CPU 的 EALLOW 保护,防
关于教师节的名言诗句止破坏性写入。 CLA 也具有这一保护功能吗?
在 CLA 状态寄存器中有一个名为 MEALLOW 位,这个位启用/禁用对 CLA 写入的保护。这个位由
MEALLOW/MEDIS CLA 指令置位和清零。这个保护不受主 CPU 的 EALLOW 位的影响。也就是
说,主 CPU 可以经由 EALLOW 启用写入,但是寄存器仍将通过 MEALLOW 受到 CLA 的保护。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。