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.

[参考译文] RM48L952:IRQ 汇编处理程序

Guru**** 2810285 points

Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/848841/rm48l952-irq-assembly-handler

器件型号:RM48L952
主题中讨论的其他器件:HALCOGEN

大家好、我正在尝试编写 IRQ 汇编处理程序。 处理程序调用在模式下定义的函数来打开 LED。 上下文切换正确发生、但在我在 Halcogen 中设置的时间段内 IRQ 未正确触发。 当我逐步调试时、我看到 HET 和 VIM 寄存器中的中断标志不会被清除。 您能否指导我清除哪些标志以及应在何处执行这些标志、以确保 IRQ 正确触发? 我试图清除它们、之后 IRQ 停止触发。

此致、

Smruthi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    当一条指令中的中断条件为真且该指令的中断使能位被置位时、N2HET 中断标志寄存器(HETFLG)中的一个中断标志被置位。 这个标志的地址代码由当前定时器程序地址的5个 LSB 确定。 N2HET 中断标志寄存器(HETFLG)中的标志被置位、即使 N2HET 中断使能置位寄存器(HETINTENAS)中的相应位为0。 要产生中断、N2HET 中断使能置位寄存器(HETINTENAS)中的相应位必须为1。
    在 N2HET 中断服务程序中、主 CPU 必须首先确定 N2HET 内部哪个源创建了中断请求。 此操作由 N2HET 偏移索引优先级1寄存器(HETOFF1)或 N2HET 偏移索引优先级2寄存器(HETOFF2)加速、此寄存器自动提供每个优先级内最高优先级源的数量。

    通过向标志写入1可完成标志清零。 或者、读取相应的偏移量索引优先级1寄存器(HETOFF1)或偏移量索引优先级2寄存器(HETOFF2)将自动清除该标志。 如果 N2HET 中断处理例程未使用偏移寄存器、则在中断被处理后、该标志应由 CPU 显式清除。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我正在从 IRQ 汇编函数调用的 c 例程中读取 NHET 偏移寄存器。 但这仍然不能解决问题。 此外、代码仅在调试模式下运行。 如果我尝试简单地加载程序并运行它、则不会生成 IRQ、因为在我的处理程序中、我将切换一个完全不会发生的 LED。 我是否可以查看任何参考 IRQ 汇编代码以进行比较? 我尝试搜索文档、但没有找到任何内容。  

    此致、

    Smruthi