2019-12-15 关键字:嵌入式开发、异常处理、嵌入式裸机开发 1、ARM的异常 异常在嵌入式开发中是很常见的事件,它也是非常重要的事件。简单来说,异常就是一种会打断程序正常执行的事件。异常通常又称为“中断”。 异常的种类大致可分为如下几种: 1、中断 IRQ / FIQ 由外部硬件触发的中断。 ...
分类:
其他好文 时间:
2019-12-15 20:03:24
阅读次数:
94
local_irq_disable()和 local_irq_enable()都只能禁止和使能本地 CPU 内的中断, 因此,并不能解决 SMP 多 CPU 引发的竞态。因此,单独使用中断屏蔽通常不是一种值得推荐的避免竞态的方法,它适宜与自旋锁联合使用。与 local_irq_disable()不同 ...
分类:
系统相关 时间:
2019-11-29 11:20:00
阅读次数:
84
1,为啥需要自旋锁 很多时候我们并不能采用其他的锁,比如读写锁、互斥锁、信号量等。一方面这些锁会发生上下文切换,他的时间是不可预期的,对于一些简单的、极短的临界区完全是一种性能损耗;另一方面在中断上下文是不允许睡眠的,除了自旋锁以外的其他任何形式的锁都有可能导致睡眠或者进程切换,这是违背了中断的设计 ...
分类:
其他好文 时间:
2019-11-26 13:29:23
阅读次数:
72
一、linux中断注册 1、request_irq函数 函数就是驱动开发者向内核注册一个中断的接口。它有五个参数,分别是响:中断号,应中断时的中断处理函数,中断的触发方式,中断的名字,传给中断处理的参数。代码块如下: 2、setup_irq函数 代码块如下: 和 这些指针都是在 的 函数初始化,在 ...
分类:
系统相关 时间:
2019-11-24 00:05:55
阅读次数:
86
ARM处理器工作模式一共有 7 种 :1、USR 模式正常用户模式,程序正常执行模式2、FIQ模式(Fast Interrupt Request)处理快速中断,支持高速数据传送或通道处理3、IRQ模式处理普通中断4、SVC模式(Supervisor)操作系统保护模式,处理软件中断swi reset5 ...
分类:
其他好文 时间:
2019-11-03 16:36:10
阅读次数:
183
1.1 中断概述 ARM 架构 linux 内核中,有 5 种常见的异常,其中中断异常是其一,Linux 内核将所 有中断统一编号,使用一个 irq_desc 结构体来描述这些中断,里面记录了中断名称、中断状 态、中断标记、并提供了中断的底层硬件访问函数(如:清除、屏蔽、使能中断),提供了这 个中断 ...
分类:
其他好文 时间:
2019-08-29 11:29:24
阅读次数:
159
用法:grep [option] PATTERN [FILE...] 例如: 在内核目录下查找包含“request_irq”字样的文件 grep "request_irq" * -R 注:*表示查找当前目录下的所有文件、目录,-R表示递归查找子目录; 在内核的kernel目录下查找包含“reques ...
分类:
其他好文 时间:
2019-08-17 01:11:55
阅读次数:
94
1.ZYNQ中断简述ZYNQ中断类型:普通中断请求(IRQ,InterruptRequest)和快速中断请求(FIQ,FastInterruptRequest)。ZYNQ中断源:软件中断(SGI,SoftwareGeneratedInterrupt)、CPU私有设备中断(PPI,PrivatePeripheralInterrupt)和共享设备中断(SPI,SharedPeripheralInter
分类:
其他好文 时间:
2019-08-14 17:18:09
阅读次数:
416
IRQ (中断) 指定某进程运行在指定cpu上:taskset -p cpu第几核 pid 优点:CPU固定后可以提升CPU在缓存下的命中率,然后屏蔽被指定的CPU,可以使得特定进程独享某CPU资源(将需要被隔离的cpu通过isolcpus=cpu number,。。。。。,cpu number写入 ...
分类:
其他好文 时间:
2019-08-11 11:18:53
阅读次数:
105
一、简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的。这些实时实现技术包括:中断线程化(包括IRQ和softirq)、用Mutex取代spinlock、优先级继承和死 ...
分类:
其他好文 时间:
2019-07-20 17:17:54
阅读次数:
73