IP Interrupt Status Register (Read/TOW)中断状态寄存器说明
一、中断状态寄存器说明
// 0x00c : IP Interrupt Status Register (Read/TOW)
// bit 0 - Channel 0 (ap_done)
// bit 1 - Channel 1 (ap_ready)
// others - reserved
寄存器地址、访问属性(Read/TOW)、位域定义(bit0 ap_done, bit1 ap_ready)
二、寄存器特性
1.地址:0x00C 是相对于 IP 基地址的偏移。
2.IP Interrupt Status Register,表明它专门用于记录和清除硬件中断源的状态
3.Read:软件可以读取,获取当前是否有中断发生
4.TOW (Toggle On Write,或更准确地理解为 Write 1 to Clear):
它不是让你去写0或1来设置状态,而是说:当你向某个位写 1 时,硬件会将该位清 0(清除中断)。这是一个主动清除中断的机制。如果你写 0,该位状态不变。
5.一般只对bit0进行清理中断
bit 0 - Channel 0 (ap_done)
当 HLS 任务完成(ap_start 发起的任务执行完毕后),硬件自动将此位置 1,表示 "任务完成中断" 发生。
static int clear_hls_irq(Xhls_Device* ths)
{
u32 status = ReadReg(ths->phy_base, base_addr + IP_Interrupt_Status_Register_address);
if (status == 1) {
WriteReg(ths->phy_base, base_addr + IP_Interrupt_Status_Register_address, 1);//bit_0 ap done清为0
return 0;
}
}
