前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Altera cyclone V HPS GIC

Altera cyclone V HPS GIC

作者头像
FPGA技术江湖
发布2020-12-29 16:24:45
8941
发布2020-12-29 16:24:45
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天和大侠简单聊一聊英特尔 Altera系列 cyclone V HPS GIC,话不多说,上货。

一、CYCLONE V GIC配置

Cyclone v使用双核ARM CORTEX A9硬核处理器,MPU系统框图如下:

由上面图可以看出,双核CORTEXA9共同使用一个GIC,pl390。PL390实现了180个中断源,包括了专用的FPGA中断。每个核都有16个一组的软件中断(SGI)及16个一组的私有中断(PPI)。这32个中断占用了GIC的0-31中断号,也称为interrupt ID。但是这32个中断采用了中断与寄存器分区抽像。关于这个中断与寄存器分区,后面讲讲。具体的中断映射,请参照cyclone v HPS手册。 PL390负责收集所有的中断信号,并对这些中断信号进行管理,包括中断行为,中断路由及安全扩展等。具体如下:

  • ARM安全扩展,这部分内容需要了解ARM TRUSTZONE技术。
  • 使能,关闭及生成外围中断。
  • 生成软件中断。
  • 中断门限及优先级设置。
  • 多处理器环境中的路由。

PL330支持三种中断类型,PPI,SPI,SGI。

  • PPI中断为CPU核私有中断,只连接到指定CPU核。
  • SPI由PL330路由到相应的CPU核。
  • SGI由软件编程PL330直接生成,用与核间通信。

PL390支持两中中断模型:

  • 1:N:只让一个CPU核处理中断。软件通过系统编程GIC实现中断路由,让指定CPU核处理该中断。
  • N:N:每个处理器都会收到中断,它们独立处理这些中断。这种方式在SGI上使用,用于CPU核间通信。

二、MPU GI

PL390提供一个AMBA总线接口给SOC系统访问其内部寄存器,可以进行可寻址配置及访问,同时还可以提供最多8个CPU接口,也就是说可以最多为8个CPU提供中断服务。

整个GIC被分成两个部分,distributor(中断分配器)与多个CPU接口。再看下面一张图。

这张图中,红色箭头直接穿过distributor,分配到FIQ与IRQ,这就是bypass模式,也称为旁路模式,这种模式下,所有中断被直接分配到了相应的CPU核。而橙色箭头方向表示GIC提供了一个AXI接口,可以用于访问distributor,对GIC进行配置。蓝色表示软件可以通过CPU接口直接编程GIC,产生中断,该中断具有广播性质。 通用GIC系统框图如下所示:

由上图可以看到GIC明显分成了Distributor与cpu接口两部分。所有的中断都经过Distributor,SGI中断只是能edge触发。

三、GIC编程模型

CPU接口寄存器如下图所示,在CYCLONE V中的偏移地址是0xfffec000。

GICC_CTRL(CPU接口控制寄存器)

Enable= 1来转发中断。

中断优先级屏蔽寄存器(GICC_PMR)

用来设置一个优先级,低于该优先级的中断不会送到CPU。如果设置成0,那就意味着所有中断都屏蔽了,都不会送到ARM核。

GICC_BPR(二进制点寄存器)

优先级值被分成组优先级与子优先级,跟IP地址掩码相似。这样设置后,有相同组优先级的中断被认为有相同的等级。这样就分成两种情况,如果一个中断要抢占一个正在活动的中断,那么该中断必须有一个比活动中断小的优先级。如果没有活动中断情况下,相同组的中断比较子优先级,产生一个。

GICC_IAR(中断确认寄存器)

当接收到中断时,读取该寄存器并读取中断ID及SGI中产生中断的CPUID,通知gic中断处理程序已被确认。

中断结束寄存器(GICC_EOIR)

当中断服务程序(ISR)中的中断处理完成时,记录相应的中断ID,并通知gic已执行eoi处理。写该寄存器通过GIC中断处理完毕。

END

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档