【DSP开发】C6678的中断控制器
分两层,一层是每个core内部的中断控制器,这个叫interrupt controller,简写intc;一层是整个芯片的,属于芯片级的,在每个core的外面,这个叫chip-level
interrupt controller,缩写CIC。
分两层其实两层功能也不同,这个不用细说,intc可以直接处理一些中断,这些是每个核都同样的,但是还有一些中断,如果有需要不能让所有的核都能看到,则这个时候就需要在所有的核外进行统一管理了,这个就是CIC。在C6678上,CIC可以进行中断映射,这个功能就可以将一些中断映射至希望接管的core上,而让其他核感知不到这个中断。对于C6678的CIC可以管控的中断一共最多可以有1024个,管控方式是可以将每个中断通过配置,映射至256个channel中的某一个,一个channel上可以同时映射多个中断,映射至同一个channel的中断,相互之间就是逻辑“或”的关系了,即如果其中任何一个中断产生,该channel均会上报中断;system
events至channel映射完了之后,还不能完成中断的上报,还需要把这256个channel映射至host
interrupt,host interrupt的数量最大也是256个。这个host
interrupt的编号和CICx_OUTn是一一对应的,但是整个对应关系并不是从CIC0开始按序号一边编到最后的CICx,而是CIC分多个,每个CIC的OUT都是从OUT0开始编号。实际上CICx_OUTn到corepac的intc的输入,是定死的,如下图:
比如21行中的CIC0_OUT,对于core0来说,core0的intc的system
event 21接的就是CIC0_OUT(32 + 0 + 11 * 0),即CIC0_OUT32啦,这个CIC0_OUT32是不可能让其他core来接管的;
同样,对于core1来说,core1 intc的system
event 21接的就是CIC0_OUT(32 + 0 + 11 * 1),即CIC0_OUT43,这个CIC0_OUT43同样也只能由core1接管,不可能让其他core来接管CIC0_OUT43。其他类推。
因此对于从CIC的输入,到最后core可以处理的整个流程,有3个环节决定CIC的输入最终由哪个core来处理,这3个环节分别是:
1、 system interrupt到channel的map
2、 channel到host
interrupt的map
3、 host interrupt到corepac
intc的连接
之所以最后一个叫连接,而不叫map,是因为这个level上确实不存在什么map不map,而是直接连死的,如上面图下的分析。而前面的两个map中,真正算的上map的只能有1个,就是第一个,system
interrupt到channel的map,因为这个level是可以配置的,可以随意配置,而第二个map,即channel到host
interrupt的map实际上是硬件固定的,但是有一个map状态寄存器可以查询。第三个也是硬件固定的,貌似跟第二个差不多,但是不叫map,至于原因,是因为这个level上连像第二级的映射查询都没有。
因此,需要将system interrupt配置至要处理的core能正确感知的话,主要是配置level1,即system
interrupt到channel的map,而且需要根据level2和level3的关系来确定level1的配置,比如有一个CIC上连的中断,如果我们希望这个中断由core0来接管的话,那么先确认core0可以相应那些CICx_OUTn,然后确认这个OUTn的host
interrupt编号,此时便可以确认map到该host interrupt的是哪个channel了,再然后,将core0要接管的这个CIC中断map到对应的channel上即可,最后还需要几个使能,包含CIC输入的使能、host
interrupt的使能,以及intc对应的event使能。当然,并非所有的CIC上的中断都可以由core0来接管,因为可以映射到core0的中断实际仅仅局限于CIC0上的,具体限制如下图所示:

【DSP开发】C6678的中断控制器的更多相关文章
- 【ARM-Linux开发】【DSP开发】AM5728介绍
AM5728 Sitara Processors 1. 介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...
- 【DSP开发】DSP通用并行端口uPP
这是翻译TI官方文档<KeyStone Architecture Universal Parallel Port (uPP)>SPRUHG9有关通用并行端口uPP的内容(除寄存器部分) ...
- 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(一)
要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分.不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI.US ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
- DSP开发笔记一
前言 本笔记首先对DSP的特点及其选型进行了描述,然后重点记录DSP开发环境的搭建及基础工程示例,对为DSP开发新手有一定的指导作用. 1. DSP简介 1.1 主要特点 在一个指令周期内可完成一 ...
- x86架构中的外部中断结构-Part 1:中断控制器的演化
本文主要讲解了x86体系架构从外部设备接受中断的过程,本文是系列文章的第一部分,试图回答以下问题: 什么是PIC以及它的用途是什么? 什么是APIC以及它的用途是什么?LAPIC和I/O APIC的目 ...
- ARM9的中断控制器
简要复习一下ARM9中断控制器的控制过程: 1.首先能识别触发的中断(对应中断源必须打开,然后查询当前中断状态寄存器),硬件会操控PC跳到中断向量入口(IRQ_HANDLE,硬件控制的只要是IRQ中断 ...
- iOS开发UI篇—多控制器和导航控制器简单介绍
iOS开发UI篇—多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...
- IOS开发UI篇—导航控制器属性和基本使用
IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...
随机推荐
- idea设置数据库连接所有项目都能看到
首先打来配置好数据库的项目,打开database视图,点击配置. 点击 Project Data Soures 下配置好的数据库,然后点击 Make Global ,然后就可以在其他项目看到该数据库连 ...
- wind本地MySQL数据到hive的指定路径
一:使用:kettle:wind本地MySQL数据到hive的指定路径二:问题:没有root写权限网上说的什么少jar包,我这里不存在这种情况,因为我自己是导入jar包的:mysql-connecto ...
- Java中的Error和Exception
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型. Excep ...
- 原生Js_实现广告弹窗
广告样式当页面加载后5s刷新在右下角 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- Android学习_内容提示器
内容提供器 1. 创建自己的内容提供器 1) 继承ContentProvider类,重写6个方法:onCreate().query().insert().update().delete ...
- TCP 之 TCP_NEW_SYN_RECV状态
概述 以前的TCP请求控制块没有独立的状态,而是依赖于他们的父控制块的状态,也就是TCP_LISTEN状态,现在要把请求控制块加入到全局的ehash中,所以需要一个状态,而TCP_SYN_RECV状态 ...
- 【黑马JavaSE】1.2.算术\赋值\比较\逻辑\三元运算符、方法入门、JShell编译器
文章目录 1_1_6_05_算术运算符_四则与取模运算 1_1_6_06_算术运算符_加号的多种 1_1_6_07_算术运算符_自增自减运算 1_1_6_08_赋值运算符 这里挺关键的,为什么一个by ...
- thinkpad T480安装WIN7
本文转载自http://www.dnxtc.net/zixun/zhuangjijiaocheng/2018-12-01/3256.html 防止忘记 特别把资源集中一下 新买的笔记本预装的WIN10 ...
- jdk git maven Jenkins的配置
前言 搭建Jenkins的笔记. JDK 1. jdk 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-down ...
- Hive数据提取
Hive是基于Hadoop的ETL工具和数据仓库. 结构化数据 结构化数据就像RDBMS hive> create table structured_table(id int, name str ...