
异常与中断
lee_jimmy
长期DJI内推,所有岗位都有,有意愿者可以发送简历到我的邮箱:651074561@qq.com
展开
-
CPU模式(mode)、状态与寄存器
ARM920T的7种工作模式(1)usr:正常模式(2)sys:系统(3)异常模式und:未定义模式svc:管理模式abt:中止模式:指令预取数据访问irq:中断模式fiq:快中断模式2种状态(1)ARM指令集每条指令占用4字节(2)thumb指令集每条指令占用2字节比如指令 mov r0, r1使用不同指令集编译后,每条指令占用的空间大小不同ARM:4byte机器码THUMB:2byte机器码寄...原创 2018-04-15 15:59:03 · 5574 阅读 · 0 评论 -
Linux异常中断处理结构
内核在start_kernel()函数(init/main.c)中会调用trap_init()个函数来设置异常的处理函数。1、trap_init()函数/* * Copy the vectors, stubs and kuser helpers (in entry-armv.S) * into the vector page, mapped at 0xffff0000, and ...原创 2018-10-07 15:55:14 · 848 阅读 · 0 评论 -
Linux驱动中并发问题的相关函数
前言目前我们接触到的复杂点的系统都是SMP(对称多处理器)和preempt(抢占式)的。这篇文章我们会讲解好几种情况下,处理驱动并发问题的函数应该怎么使用,避免大材小用或者用得不巧当造成没有效果。正文1、进程和中断上下文,单CPU,非抢占内核这种情况比较简单,因为是非抢占的,所以同一个CPU上的两个进程之间不用相互顾忌对方,而且又是单CPU的,又不用怕其它CPU的中断来打扰,所以只...原创 2019-09-04 23:24:53 · 261 阅读 · 0 评论 -
tasklet使用方法
tasklet的概念我这里就不多讲了,因为网上的文章很多,我这里只介绍怎么在我们的驱动程序中使用tasklet提供的接口函数。一般,从定义到最后注销,一共有4步,下面我们分别介绍这4个接口函数。静态定义taskletstatic void my_tasklet_func(unsigned long data);DECLARE_TASKLET_DISABLED(tasklet, my_...原创 2019-09-05 23:01:36 · 1374 阅读 · 0 评论