This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Champ:
我要求为我的客户提供服务。
一般而言、我们将在 SysConfig 中配置 CLB、用户对 CLB 模块中的 driverAPI 和寄存器有一些问题。
在 GUI 中启用 CLB 模块后、将生成 driverAPI" CLB_enableCLB"。
专家能否 解释一下这两个函数是如何工作的? 为什么要使用"GLOBLE_EN"位来启用/禁用 CLB 模块?
是否建议使用"CLB_disableCLB"禁用 CLB 模块?
2. CLB_LOAD_EN 寄存器中的 GLOBAL_EN 位受锁定保护、这意味着无法修改(即: 清除为0)在 board.c 中将该位设置为高电平后?
3. 由于 HLC 将在计数器上执行 INTR 指令与值匹配,我可以再次确认 CLB_INTR_TAG_REG 寄存器中的 TAG 位确实是递增计数的真实值,而不仅仅是一个0/1事件,正确吗? 因此、用户应该从函数 CLB_getInterruptTag 中看到从0、1、…、10递增的值、并且与 GUI 中 HLC 程序0 (即 INTR 10)中的指令相匹配、那么 CLB ISR 最终还要达到?
感谢您的输入。
此致、
约翰尼
您好、Johnny、
Unknown 说:用于启用 CLB 和禁用 CLB 的 driverlib 函数用于启用或禁用 外设的逻辑、还可以用作软复位。 请通读寄存器描述以了解更多信息。 如果您计划不使用 CLB、则应使用 CLB_disableCLB。
[/quote]Unknown 说:2. CLB_LOAD_EN 寄存器中的 GLOBAL_EN 位受锁定保护、这意味着无法修改(即 清除为0)在 board.c 中将该位设置为高电平后? [/报价]我认为这是一个拼写错误。 我已确认 CLB 在初始化为启用后可以禁用、随后也可以重新启用。 F28004x 将 EALLOW 提到为该位的写保护的一部分、因此 F28003x 的寄存器可能具有相同的要求、但同一文本未复制到表中。
[/quote]Unknown 说:3. 由于 HLC 将在计数器上执行 INTR 指令与值匹配、我可以再次确认 CLB_INTR_TAG_REG 寄存器中的 TAG 位确实是递增计数的真实值、而不仅仅是0/1事件、正确吗? 因此、用户应该从函数 CLB_getInterruptTag 中看到从0、1、…、10递增的值、并且与 GUI 中 HLC 程序0 (即 INTR 10)中的指令相匹配、那么 CLB ISR 最终还要达到? [/报价]正确;一般而言、指示0/1事件的状态寄存器每个状态事件仅为1位、因此该寄存器字段为5位、这不仅是简单的切换行为、指示中断是否发生。
此致、
阿米尔·奥马尔
您好、Omer:
感谢您的及时回复。
如 GLOBAL_EN 说明所述、"当该位从1清除为0时、CLB 输出(包括 LUT 和 OUTLUT)将被选通、即当 GLOBAL_EN 为低电平时、CLB 输出将为低电平。" 这是否 意味着、无论 LUT_IN0的逻辑~LUT_IN3还是输入信号到 CLB 模块的任何其他元素、一旦将 GLOBAL_EN 设置为低电平状态、它将被强制为低电平?正确吗?
此致、
约翰尼
是的、这是 CLB 外设的软复位。