- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 trace for __get_free_page(转)
转自:http://blog.chinaunix.net/space.php?uid=20286427&do=blog&id=116103 __get_free_page is a macro, which was defined in >>>#define __get_free_page(gfp_mask) / __get_free_p
2011-02-28 09:48:00 1650
原创 MIPS的VEIC(转)
异常向量初始化代码参见arch/mips/kernel/traps.c。大概执行流程如下:1、计算所有外部中断向量的size(个数xIntCtl[VS])2、通过size计算ebase,并将结果写入EBASE寄存器3、循环调用set_vi_handler初始化外部中断向量(根据VEIC或者VINT支持的外部中断个数决定循环次数)。handler地址如果是NULL,则会指向do_default_vi。细节还由是否支持shadow寄存器决定。do_default_vi就是产生一个kernel pan
2011-02-12 19:46:00 2105
转载 mips linux trap_init函数分析(转)
CAC_BASE 表明支持CACHE 的base 地址,由于是 32 的 CPU ,所以等于0x80000000;per_cpu_trap_init()中初始化CUP 的TLB 和cache ,以及它们的异常处理程序;set_handler(0x180, &except_vec3_generic, 0x80)设置通用异常入口(ebase+0x180)的处理程序为except_vec3_generic;初始化异常处理表exception_handlers;
2011-02-12 17:04:00 4053
转载 禁止本地中断(转)
local_irq_disable/local_irq_enable;local_irq_save/local_irq_restore;local_bh_disable/local_bh_enable
2011-02-10 19:23:00 9748 1
转载 内核随记(二)——内核抢占与中断返回(转)
<br />转自:http://www.cublog.cn/u3/109935/showart_2198700.html<br /> 1、上下文<br />一般来说,CPU在任何时刻都处于以下三种情况之一:<br />(1)运行于用户空间,执行用户进程;<br />(2)运行于内核空间,处于进程上下文;<br />(3)运行于内核空间,处于中断上下文。<br />应用程序通过系统调用陷入内核,此时处于进程上下文。现代几乎所有的CPU体系结构都支持中断。当外部设备产生中断,向CPU发送一个异步信号,CPU调用
2011-02-10 17:38:00 1227
转载 Linux内核抢占实现机制分析(转)
<br />转自:http://blog.csdn.net/zhenhuakang/archive/2010/02/22/5317492.aspx<br /> <br />Linux内核抢占实现机制分析<br />【摘要】本文详解了Linux内核抢占实现机制。首先介绍了内核抢占和用户抢占的概念和区别,接着分析了不可抢占内核的特点及实时系统中实现内核抢占的必要性。然后分析了禁止内核抢占的情况和内核抢占的时机,最后介绍了实现抢占内核所做的改动以及何时需要重新调度。<br />【关键字】内核抢占,用户抢占,中断,
2011-02-10 17:16:00 1741
转载 Linux 2.6内核笔记【中断、异常、抢占内核】(转)
中断信号是一个统称,统称那些改变CPU指令执行序列的事件。但它又分为两种:一种是同步的,一种是异步的内核在允许中断信号到来之前,必须先准备好对它们的处理,也就是适当地初始化中断描述符表(Interrupt Descriptor Table, IDT)。软中断(softirq)是可重入函数而且必须明确地使用自旋锁保护其数据结构;tasklet在软中断基础上实现,但由于内核保证不会在两个CPU上同时运行相同类型的tasklet,所以它不必是可重入的。在非抢占内核的情形,一个执行在内核
2011-02-10 16:35:00 963
原创 中断代码阅读(1)_共享中断和短时间两次同一中断
1. 共享中断的注册和处理注册中断时,在setup_irq中, struct irq_desc *desc = irq_desc + irq;... p = &desc->action; old = *p; if (old) {如果已注册中断或者本次注册中断不是共享中断,则 if (!((old->flags & new->flags) & IRQF_SHARED) || ((old->flags ^ new->flags) & IRQF_TRIGGER_MASK)) { old_name
2011-02-10 16:01:00 1360 1
ARM® Architecture Reference Manual ARMv7-A and ARMv7-R edition
2018-06-15
Bare-metal Boot Code for ARMv8-A Processors
2018-05-29
ARM Generic Interrupt Controller Architecture Specification (3.0 & 4.0)
2018-05-04
Brief Introduction to MIPS32 Shadow Registers
2011-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人