繁体   English   中英

armv8定时器中断设置问题

[英]problem with armv8 timer interrupt setting

我正在尝试在 cortex-a55 上设置核心定时器中断。 计时器设置如下所示

.global get_sys_timer_interrupt
get_sys_timer_interrupt:
    mrs x1, CNTFRQ_EL0
    msr CNTP_TVAL_EL0, x1
    mov x0, 1
    msr CNTP_CTL_EL0, x0
    RET

CurrentEL寄存器告诉我我在EL1级别工作。 我在VBAR_EL1寄存器中指向一个指向向量表的指针。 向量表看起来像这样

.text
.global vector_table
.balign 2048
vector_table:
    b exception_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b exception_entry
.balign 0x80
    b exception_entry   // <----
.balign 0x80
    b interrupt_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    mov x0, #8
    b exception_entry
.balign 0x80
    b exception_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b exception_entry
.balign 0x80
    b exception_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b interrupt_entry
.balign 0x80
    b exception_entry

如果我创建了一个不正确的命令,处理器会进入 exception_entry (即进入中断错误处理,我注意到它)但我不明白为什么不调用定时器中断。 我认为有必要在 GIC(中断处理单元)中安装一些寄存器,但是在写入寄存器时它们不会被覆盖(我检查了GICD_CTRLGICD_ISENABLER

您可以参考https://www.terraelectronica.ru/pdf/show?pdf_file=%252Fds%252Fpdf%252FD%252FDDI0500.pdf在第3.2.2 Exception levels An exception cannot target the EL0 Exception levelAn exception cannot target the EL0 Exception level 这意味着应该从 EL1/EL2/EL3 处理 IRQ 异常,具体取决于您的配置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM