
linux-exception
文章平均质量分 80
coldsnow33
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ARM Linux异常处理之data abort
本文简要分析了ARM Linux的data abort异常处理过程,内核版本2.6.28,s3c6410平台。1 异常向量与程序跳转data abort是ARM体系定义的异常之一。异常发生时,ARM会自动跳转到异常向量表中,通过向量表中的跳转命令跳转到相应的异常处理中去。ARM的异常处理向量表在entry-armv.S文件中: .globl __vectors转载 2014-03-04 21:23:19 · 4365 阅读 · 0 评论 -
linux运行模式
据说linux kernel只用到了arm的usr和svc两种模式;用户态位于usr,内核态位于svc。如果发生中断呢?难道不是出于irq模式?在中断异常的用户入口__irq_usr处加了打印,发现此时的mode是3,不是应该处于irq mode吗?怎么是svc呢?怎么切过去的?这还要从中断异常的入口说起。还记得中断向量表吗?/** Interrupt dispatcher*/vecto原创 2013-10-25 18:15:15 · 1502 阅读 · 0 评论 -
中断二 C实现
init/main.cstart_kernel()->early_irq_init()初始化中断描述符irq_desc,分为数组和基数树两种方式。desc->irq_data.chip和desc->handle_irqstart_kernel()->init_IRQ()->void __init init_IRQ(void){ if (IS_ENABLED(CONFIG_OF)原创 2013-11-18 15:41:10 · 3324 阅读 · 1 评论 -
中断一 中断向量表跳来跳去跳到C
一 中断的处理流程1 发生中断时,CPU执行异常向量vector_irq的代码。2 在vertor_irq里面,最终会调用中断处理的总入口函数asm_do_IRQ。3 asm_do_IRQ根据中断号调用irq_desc数组项中的handle_irq。4 handle_irq会使用chip成员中的函数来设置硬件,比如清除中断、禁止中断、重新使能中断等。5 handle_irq逐个原创 2013-10-23 19:20:51 · 4163 阅读 · 2 评论 -
arm系统调用
一 系统调用用户接口1 int open(const char *filename, int oflag,mode_t mode);打开file,方式为oflag("O_RDONLY"即0,"O_WRONLY"即1,"O_RDWR"即2),mode是仅当创建新文件才使用,一般可缺省不要。(返回值:成功0;失败-1)2 int close(int file); 关闭一个打开的文件fi原创 2013-10-24 21:38:04 · 3940 阅读 · 0 评论