中断
yiyeguzhou100
专注,探索,分享
展开
-
APIC: Advanced Programmable Interrupt Controller高级可编程中断控制器总结
简介: APIC 是装置的扩充组合用来驱动 Interrupt 控制器。在目前的建置中,系统的每一个部份都是经由 APIC Bus 连接的。"本机 APIC" 为系统的一部份,负责传递 Interrupt 至指定的处理器;举例来说,当一台机器上有三个处理器则它必须相对的要有三个本机 APIC。自 1994 年的 Pentium P54c 开始Intel 已经将本机 APIC 建置在它们的处理器中。实际建置了 Intel 处理器的电脑就已经包含了 APIC 系统的部份。组成 I/O APIC的组转载 2020-09-27 19:53:45 · 958 阅读 · 0 评论 -
你应该知道的Linux内核softirq
说起这个softirq ,很多人还是一头雾水,觉得这个是什么东西,跟tasklets 和 workqueue有什么不同。每次谈到这个,很多人,包括我,都是有点紧张,特别是面试的时候,因为你一旦说错了什么,那么你这次面试估计就歇菜了。谈到这个,我们不得不说中断,中断处理,我相信很多人都是知道的,中断分为上半部和下半部,原来的Linux 内核是没有下半部的,中断来了,就在中断里处理事件,说白了...转载 2019-12-07 23:19:50 · 941 阅读 · 0 评论 -
Multicore Navigator (CPPI):Notify end of QM interrupt
在RTOS中,Multicore Navigator (CPPI)中PDSP监控的中断是作为中断进程进行调度的。如下,QM_PDSP_ISR是作为中断进程的入口函数注册给中断进程的,每次中断进程被调用的时候,都将从QM_PDSP_ISR处执行,这与普通的非中断进程不同(从被打断处继续执行)。void QM_PDSP_ISR(){ //processing func原创 2015-01-12 15:08:09 · 1255 阅读 · 0 评论 -
中断子系统的proc文件接口
在/proc目录下面,有两个与中断子系统相关的文件和子目录,它们是:/proc/interrupts:文件/proc/irq:子目录读取interrupts会依次显示irq编号,每个cpu对该irq的处理次数,中断控制器的名字,irq的名字,以及驱动程序注册该irq时使用的名字,以下是一个例子:/proc/irq目录下面会为每个注册的irq创建一个以ir转载 2016-06-23 19:06:42 · 2127 阅读 · 0 评论 -
设备中断绑定到特定CPU(SMP IRQ Affinity)
http://blog.chinaunix.net/uid-20737871-id-3600093.html在前阵子看到HelloDB的一篇文章“MySQL单机多实例方案”中提到:因为单机运行多个实例,必须对网络进行优化,我们通过多个的IP的方式,将多个MySQL实例绑定在不同的网卡上,从而提高整体的网络能力。还有一种更高级的做法是,将不同网卡的中断与CPU绑定,这样可以大幅度转载 2017-06-09 17:26:42 · 600 阅读 · 0 评论 -
local_bh_disable, preempt_disable, local_irq_disable
https://stackoverflow.com/questions/24260087/local-bh-disable-preempt-disable-local-irq-disablelocal_bh_disable disables the processing of bottom halves (softirqs). Softirqs are processed on eithe转载 2017-10-26 16:18:33 · 1095 阅读 · 0 评论 -
详解Linux中断处理中的hardirq与softirq机制
http://blog.chinaunix.net/uid-23769728-id-3079164.html今天在ChinaUnix论坛内核源码版上与linuxfellow网友讨论到hardirq和softirq的问题,虽 然在《深入Linux设备驱动程序内核机制》(以下简称“ILDD”)第5章“中断处理”对此已有详细的解读,但是我觉得还是有必要再花点时间深入探讨一 下这两者的区别。因为此前关...转载 2019-08-01 22:40:59 · 618 阅读 · 0 评论 -
local_softirq_pending位何时置位
硬中断执行结束在退出之前,都会在irq_exit中判断如果有pending的软中断就触发软中断:内核代码通过调用raise_softirq_irqoff来触发相应的软中断,将相应的bit位置位,这样在irq_exit中判断就有pending的软中断,进而触发执行相应的软中断(直接执行软中断或触发软中断线程):raise_softirq_irqoff函数调用__raise_softi...原创 2019-08-01 23:10:11 · 3870 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
ISFP是服务中断的指令包,创建ISR的三种情况:1,一个ISFP包的14/8条指令就可以满足ISR2,ISR可以占用多个连续的ISFP(前提是下面的中断没有使用)3,ISR位于IST之外原创 2014-07-13 22:35:29 · 1738 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.9(IST重定位)
RESET中断的获取包必须位于0地址处,然后其他中断的获取包可以位于任何256字(1k字节边界)对齐的程序空间。IST的位置由ISTP寄存器中的ISTB字段决定。IST重新定位举例:1,将IST重新定位到800h: 将地址0h~200h的源IST拷贝到800h~A00h中; 将800h写到ISTP寄存器中: MVK 800h,B2原创 2014-07-13 15:13:20 · 1160 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.6(INTMUX)
系统event 0~127(包括了eventCombiner的输出event 0~3)与CPU支持的12个可屏蔽中断是通过INTMUX寄存器进行映射的(不包括NMI,RESET)。可以选择将系统event 0~127中的event通过INTMUX映射到某一个可屏蔽中断(INT4~15)。TI C66x DSP每个CPU有3个INTMUX寄存器(INTMUX 1~3),下图中的Interrupt原创 2014-07-12 15:42:43 · 2297 阅读 · 1 评论 -
TI C66x DSP 系统events及其应用 - 5.3.1(Interrupt之eventCombiner理解)
前面讲到对于中断来说,eventCombiner将INTC的输入event 4~127分为四个group,即evenCombiner的四个输出event 0~3. 这样event 0~3与event 4~127一起作为Interrupt Sector的输入。之所以这样做是因为CPU仅有12个INT输入(INT4~15),而systemEvent有4~127共124个event,所以12个CPU的I原创 2014-05-16 23:53:30 · 1593 阅读 · 1 评论 -
TI C66x DSP 系统events及其应用 - 5.4(event与ISR配置)
根据5.2中的讲解,当监控high priority queue的PDSP channel设定好后,那么与之对应的event就知道了(PDSP channel与event一一对应),注意5.x讲的是中断的配置,并不是exception的配置,4.x讲的是exception。中断event与ISR配置伪代码如下,目的是使event与ISR建立联系: /*Configure ev原创 2014-05-15 18:02:13 · 1385 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.3(Interrupt)
对于TI C66x DSP的每个CPU有INT4~15共12个中断输入。对于中断,event combiner将event 4~127分为4个组(event 0~3为INTC内部使用,如图示为event combiner的四个输出)。类似于4.x中的exception,中断也有同样功能的event flag,event mask,masked event flag寄存器。原创 2014-05-14 22:35:17 · 2025 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)
下面讲解在具体应用中,event与中断ISR的设置。以对QM的queue监控产生中断(不是EXCEP)为例,主要包括配置QM accumulator(用于监控QM queue)与配置ISR(ISR与event配置)。首先介绍QM accumulator的配置,QM模块中QMSS(包含QMSS Tx queue 800:831,Tx/Rx channel 0:31,RxChan,TxChan,T原创 2014-05-10 01:36:59 · 1581 阅读 · 1 评论 -
TI C66x DSP中断类型及其优先级
There are four types of interrupts on the CPU.• Reset• Maskable• Nonmaskable• Exception(异常也可视为中断)These first three types are differentiated by theirpriorities. Thereset interrupt has t原创 2014-05-19 12:15:24 · 3937 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.8(ISTP)
中断服务表指针ISTP(Interrupt Service Table Pointer)寄存器用于定位中断服务程序的位置,即ISTP指明中断发生后去哪里找要执行的程序,ISTP就是指向IST表的寄存器。ISTP中的一个字段ISTB确定IST的地址基数部分;另一个字段HPEINT确定特定的中断并定位特定的取指包在IST中的位置。图6-4所示为ISTP的各字段,表6-2描述了各字段及其如何使用。下原创 2014-07-13 14:07:28 · 1864 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.12(vector的创建)
下面的创建中断向量表的代码,可以将段vecs(存储中段向量表的段)重定位到某个地址,如DSP的L2起始地址(对于core1,是0x10800000),同时要将ISTP指向这个地址。;create interrupt vector table for C6000 DSP;-------------------------------------------------------------原创 2014-07-20 10:09:13 · 1781 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)
C66x DSP执行中断的简要流程:1、使能了全局中断和子中断,如果硬件检测到中断发生,那么CPU就要跳转。2、软件把CPU内部的A,B类寄存器的值等推入堆栈保存,把当前PC寄存器的值放入IRP/NRP寄存器中以备中断返回能找到当前被打断的位置。3、CPU的PC指针读出中断向量表的地址,也就是把“ISTP寄存器的ISTB值+子中断向量偏移量”装入PC寄存器,这样就执行跳转。4、在中原创 2014-07-13 15:56:00 · 1705 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.7(IST)
当CPU开始处理一个中断(INT4~15)时,它将引用中断服务表(IST)。IST是一个获取包含中断服务代码的包的表。IST包含16个连续的获取包。每一个中断服务获取包(ISFP)包含最多14条指令(8个32bit nonheader-based 指令或者14个header-based指令)。一个简单的中断服务程序可以放入一个独立的获取包中(也就是不用另外跳转到ISR了,14条指令足够了),若原创 2014-07-13 10:53:54 · 1155 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.5(ISR调用)
在5.4中向event(eg,event 45)注册了callback函数(SysComC2CIsr),该函数会在什么时候调用呢?该callback函数会在EventCombinerIsr中断服务函数中调用,前面讲到过systemEvent 4~127作为eventCombiner的输入,而EventCombiner的输出event 0~3,event 0~3是与CPU中断输入INT4~15对原创 2014-05-16 18:15:18 · 1303 阅读 · 0 评论 -
TI C66x DSP 系统events及其应用 - 5.2(PDSP配置)
本节讲述PDSP监控的配置。QMSS PDSP:The queue manager sub system contains two or eight packed data structure processors (PDSP) and associated hardware that allow autonomous QMSS-related tasks with interrupt not原创 2014-05-10 23:13:18 · 1705 阅读 · 0 评论