
中断异常
天麓
很懒的码农
展开
-
中断学习之下半部深入理解
Linux 软中断机制分析http://blog.jobbole.com/107057/linux 内核软中断详解http://blog.sae.sina.com.cn/archives/4103总结一下linux软中断的实现http://blog.chinaunix.net/uid-145571-id-2798845.htmlkernel中断分析七——tasklethttps://blog.cs............原创 2018-05-31 07:45:10 · 479 阅读 · 0 评论 -
慢慢欣赏linux 中断学习之外部中断 arm glcv3虚实中断映射
对于linux开发者来说,单板上设备如果有中断,主要的工作有3步.第一步: 添加设备树的描述, 定义实中断号;第二步: 进行虚实中断映射;第三步: 申请中断通过下面的例子进行说明原创 2021-05-30 10:08:45 · 580 阅读 · 1 评论 -
慢慢欣赏linux 中断学习之外部中断 arm glcv3控制器初始化
int __init gic_of_init(struct device_node *node, struct device_node *parent){ gic_init_bases(dist_base, rdist_regs, nr_redist_regions, redist_stride, &node->fwnode); =>int __init gic_init_bases(void __iomem *dist_base, struct redist_regi.原创 2021-05-30 08:49:06 · 178 阅读 · 1 评论 -
慢慢欣赏linux 中断学习之外部中断 arm实现
void __init init_IRQ(void){ if (IS_ENABLED(CONFIG_OF) && !machine_desc->init_irq) irqchip_init(); else machine_desc->init_irq(); ==>{ DT_MACHINE_START(CNS3XXX_DT, "Cavium Networks CNS3xxx") .dt_compat = cns3xxx_dt_compat,.原创 2021-05-02 23:19:16 · 231 阅读 · 0 评论 -
中断学习之基本数据结构
CONFIG_IRQTACKS决定中断栈是独立的还是依附于内核栈。irq_desc {irq_flow_handler_t handle_irq;;中断处理函数,会调用ISR irq_chip;//中断控制器对象,抽象不同种类的PIC,例如8259控制器 irqaction *action;//共享中断链表,中断例程ISR}关系可以通过中断处理程序...原创 2018-06-12 15:27:01 · 217 阅读 · 0 评论 -
中断学习之timer_interrupt x86实现
以2.6.23为例irqreturn_t timer_interrupt(int irq, void *dev_id) =>do_timer_interrupt_hook(); =>global_clock_event->event_handler(global_clock_event);//dev->event_handler = tick_handle...原创 2018-07-14 07:54:57 · 2200 阅读 · 0 评论 -
中断学习之外部中断 powerpc实现
PPC中断处理函数的入口地址IVPR[32-47] | IVORn[48-59] | 0b'0000其中IPVR定义虚拟基址interrupt_base,描述如下:interrupt_base: //head_fsl_booke.S (c:\linux\linux-2.6.23\arch\powerpc\kernel) 26851 2007/10/10 /* Cri...原创 2018-07-15 21:00:23 · 1847 阅读 · 1 评论 -
中断学习之timer_interrupt powerpc实现
#define DECREMENTER_EXCEPTION \ START_EXCEPTION(Decrementer) \ NORMAL_EXCEPTION_PROLOG; \ lis r0,TSR_DIS@h; /* Setup the DEC interrupt mask */ \ mt...原创 2019-01-27 00:24:09 · 570 阅读 · 0 评论 -
慢慢欣赏linux 继续深入学习x86中断3 pch中断
int pch_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id){ struct pch_gpio *chip = kzalloc(sizeof(*chip), GFP_KERNEL); int irq_base; chip->dev = &pdev->dev; ret = pci_enable_device(pdev); ret = pci_request_regions.原创 2021-05-01 12:24:36 · 286 阅读 · 0 评论 -
慢慢欣赏linux 中断描述符
unsigned int __irq_entry do_IRQ(struct pt_regs *regs){ desc = __this_cpu_read(vector_irq[vector]); 根据硬中断号找到中断描述符}以RTC时钟中断注册为例static int mtk_rtc_probe(struct platform_device *pdev){ struct resource *res; struct mt6397_chip *mt6397_chip = dev_get.原创 2021-04-24 17:19:31 · 293 阅读 · 0 评论 -
慢慢欣赏linux 继续深入学习x86中断
linux驱动中断不能睡眠的原因http://blog.chinaunix.net/uid-24866549-id-4611653.html内核IRQ中断向量https://blog.youkuaiyun.com/sinat_20184565/article/details/98095894x86架构下Linux中断IDT建立及中断处理过程之1 博客不错https://blog.youkuaiyun.com/baidu_31504167/article/details/100556391x86架构下L...原创 2021-04-18 18:53:20 · 599 阅读 · 0 评论 -
进程调度之时间片以及时间相关的概念
一些基本宏定义和基础概念基础时间片:DEF_TIMESLICE (100 * HZ / 1000) == 100MSCONFIG_HZ表示每秒定时器发生中断的次数。内核可以配置。JFFIY:表示1个时钟滴答。时间间隔是由CONFIG_HZ决定的,如果CONFIG_HZ配置为250,表示周期为4ms;也就是说每4ms增加一个时钟嘀嗒,即jffies++。下面几篇文章写得都不错 参考原创 2017-08-11 07:04:10 · 2333 阅读 · 0 评论