自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 中断初始化

下面的分析是基于3.6.10内核版本。中断描述符硬中断产生之后通过门描述符来寻找中断处理程序的入口。中断描述符表的每个表项由8字节组成,叫做一个门描述符。主要包括三种门描述符:陷阱门、中断门和系统门。这里看下中断门描述符的结构:中断门描述主要包括中断如理程序所在的段选择符和段内偏移及一些标志位。低4字节的bit16~bit31为段选择符,bit0~15为段内偏移量的低16位,高

2015-06-22 15:05:49 4348

原创 持续集成CI之Jenkins使用指南

安装在debian下jenkins的安装方法如下:wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | apt-key add -sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.

2015-06-21 23:22:10 1876

原创 msix中断分析

此文档是基于linux-3.6.10内核代码对msix中断相关进行分析。PCIe设备可以使用msix报文向处理器提交中断,下面首先看下PCIe设备中的MSXI Capability结构。此结构在PCIe设备配置空间偏移0x68的位置处。字段含义Capability IDCapability结构的ID号Next Cap Ptr下一个Capability结构的位置Message Control当前PC...

2015-06-19 23:18:01 15433

原创 串口UART

如何查看Linux系统下串口信息?从上面的信息可知串口设备为16550A,占用的io口为0x3f8。下面看下UART占用的端口的范围。看到serial占用的io口范围为0x03f8~0x03ff,共8个port。 UART 16550A驱动代码8250_core.c文件中实现,初始化函数serial8250_init。从struct uart_driver类型的

2015-06-16 22:16:57 1698

原创 持续集成CI

持续集成(CI)正是针对软件质量问题的一个开发实践。团队开发人员经常集成他们的工作,每次集成都通过自动化的构建(包括编译、部署和测试)来验证,从而能够尽快的发现问题、解决问题。Jenkins是一种开源的持续集成的工具,它具有容易安装、配置,集成RSS/Email实时通知机制,支持分布式构建,丰富的插件支持等特性。CI的目标CI的核心价值在于它的任何一个环节都是自动完成的,无需人工的

2015-06-14 10:41:23 2481

原创 中断下半部分析之Tasklet

上一个博客写了中断下半部的软中断softirq部分的一些学习笔记,这批博客接着写tasklet微任务部分。仅仅是平时看代码中的一些笔记,记下了怕忘了。Tasklet是中断下半部的一种,它工作在中断上下文。同一个tasklet对象同一时刻只能在一个cpu上运行。Tasklet的数据结构为struct tasklet_struct   {    

2015-06-13 16:05:37 834

原创 中断下半部分析之软中断softirq

中断下半部分为三种:软中断、tasklet和工作队列。软中断softirq软中断softirq是用于不紧急的延期操作,是tasklet的基础。网卡接收数据的过程中,首先网卡发起中断告诉cpu取数据,然后内核从网卡读取数据存入缓存中,再由内核解析数据并将数据送到应用层。上面的整个过程如果都由中断处理程序来处理,耗时太长,会丢失新来的中断。因此解析数据这些不紧急的部分就放到软中断中执行

2015-06-13 13:10:03 1693

原创 上下文切换

进程调度是linux系统中再常见不过的事情,对于进程的调度,这里不管什么调度策略什么的,直接来看看进程的切换做了些什么事情。这里从内核的上下文切换函数context_switch开始分析。static inline  task_t * context_switch(runqueue_t * rq, task_t *prev, task_t *next)  {

2015-06-11 21:01:16 1523

原创 core文件分析

刚开通博客,想写博客很久了,今天终于开通了。先把之前写的学习笔记贴上来吧。在程序运行出现segmentfault后,我们会通过gdb来调试core文件定位问题,下面我们来分析下core文件是什么?首先需要明确的一点就是core文件也是ELF格式的,ELF的格式如下: ELF文件参与程序的链接和运行,从链接的角度看有上面左边所示的Linking View,从程序运行的

2015-06-10 19:52:00 3699 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除