自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (7)
  • 收藏
  • 关注

原创 Linux设备驱动模型-Uevent

前言当一个设备动态的加入到系统时候(比如常见的将U盘插入到PC机器上), 设备驱动程序就需要动态的检测到有设备插入了系统,就需要将此事件通知到用户层,然后用户层对这一事件做响应的处理,比如加载USB驱动,更新UI等。而将此事件通知到用户层就需要某种机制,典型的就是mdev hotplug和udev。关于udev和mdev hotplug可以在上篇文章有解释。Linux系统对uevent机制的具

2016-09-29 17:21:16 4605 1

转载 udev和mdev hotplug

1.  udev 和mdev 是两个使用uevent 机制处理热插拔问题的用户空间程序,两者的实现机理不同。udev 是基于netlink 机制的,它在系统启动时运行了一个deamon 程序udevd,通过监听内核发送的uevent 来执行相应的热拔插动作,包括创建/删除设备节点,加载/卸载驱动模块等等。2.  mdev 是基于uevent_helper 机制的,它在系统启动时修改了内核中

2016-09-29 15:31:57 1256

原创 Linux设备驱动模型-Kset

前言当多个kobject属于同一类的时候,为了方便管理,就引入了Kset。Kset可以认为是一组kobject的集合,是kobject的容器。比如/sys/bus下就属于同一类kobject。shell@test:/sys/bus $ lsclockeventsclocksourcecontainercoresightcpuevent_sourcehid

2016-09-26 15:44:31 1094

原创 Linux设备驱动模型-Ktype

前言在之前创建的object的时候,使用的是kobject_create_and_add函数。而此函数中创建的object使用的是默认的ktype(dynamic_kobj_ktype), 如果想指定ktype的话就需要使用kobject_init_and_add函数来创建object。那ktype是具体的作用是什么? ktype其实就是kobject的属性的操作集合,因为某些模块的操作集合相

2016-09-23 17:38:01 1539

原创 Linux设备驱动模型-Kobject

概述Kobject是linux设备驱动模型的基础,也是设备模型中抽象的一部分。如果想了解设备驱动模型就需要明白Kobject的构成或原理。linux内核为了兼容各种形形色色的设备,就需要对各种设备的共性进行抽象,抽象出一个基类,其余的设备只需要继承此基类就可以了。而此基类就是kobject,但是C语言没有面向对象语法,这时候就需要将此基类(Kobject)嵌入到具体的结构体中,从而就可以访问控

2016-09-22 15:23:49 2445

原创 Linux内核通知链(Notifier)

引入在linux内核中,各个子系统之间有很强的相互关系,某些子系统可能对其他子系统产生的事件比较感兴趣。因此内核引入了notifier机制,当然了notifier机制只能用在内核子系统之间,不能用在内核与应用层之间。比如当系统suspend的时候,就会使用到notifier机制来通知系统的内核线程进行suspend。内核实现的notifier机制代码位于kernel/kernel/

2016-09-21 15:34:37 3205 2

原创 workqueue

Workqueue引入在之前的softirq中提到过,内核在中断的bottom half引入了softirq,  tasklet,  workqueue。 而softirq和tasklet只能用在中断上下文中,而且不可以睡眠。所以内核引入了workqueue,工作队列运行在进程上下文,同时可以睡眠。在以前版本的内核中workqueue的代码比较简单。在linux2.6.30代码量在1000行左

2016-09-13 17:44:16 2110

原创 Tasklet

Tasklet有的时候在驱动程序中需要延迟某些操作的进行,最典型的操作就是在驱动程序的中断处理函数延迟操作。比如在DMA驱动中,当数据传输完毕之后会触发中断的,通常这时候会启动一个tasklet来完成耗时的操作,也就是中断的下半部,让中断尽早的返回。在Softirq中说过了,Tasklet的实现是基于Softirq的。也就是说Tasklet是Softirq中的一种。根据优先级不同,Linu

2016-09-08 17:59:04 766

原创 软中断SOFTIRQ

软中断的引入软中断的出现和linux系统对中断的划分是分不开的。linux系统将整个中断处理过程分为了两部分,分别为上半部(Top Half)和下半部(Bottom Half),之所以要这样分是因为关闭中断的时间不能过长,也就是在关闭中断期间尽可能少干事,否则影响整个系统的性能。所以linux系统将中断处理分为两部分,在上半部全程关闭中断,下半部打开中断。而在上半部主要干一些和硬件有关的操作,

2016-09-08 11:13:23 1883

原创 preempt_count

定义/* * low level task data that entry.S needs immediate access to. * __switch_to() assumes cpu_context follows immediately after cpu_domain. */struct thread_info { unsigned long flags; /* low

2016-09-06 15:04:32 5325 1

转载 解压与压缩ramdisk.img文件,生成uramdisk.img文件

原文链接为: http://blog.csdn.net/hancunai0017/article/details/6873948 1. 在myandroid/out/target/product/imx51_bbg目录下可以找到要解压的ramdisk.img文件。      通过file命令可以查看ramdisk.img文件的类型:      root@mail:/opt/

2016-09-06 10:38:28 1660

ARMGIC手册详解.zip

Support for: — The ARMv8 architecture. — Locality-specific Peripheral Interrupts (LPIs). — Private Peripheral Interrupts (PPIs). — Software Generated Interrupts (SGIs). — Shared Peripheral Interrupts (SPIs). — Interrupt masking and prioritization. — Uniprocessor and multiprocessor systems. — Wakeup events in power management environments.

2020-03-21

ARM_v8_architecture参考手册.zip

对ARm各个子系统都有一个简单的描述,很适合初学者。 This book provides a single guide for programmers who want to use the Cortex-A series processors that implement the ARMv8 architecture. The guide brings together information from a wide variety of sources that is useful to both ARM assembly language and C programmers. It is meant to complement rather than replace other ARM documentation available for ARMv8 processors. The other documents for specific information includes the ARM Technical Reference Manuals (TRMs) for the processors themselves, documentation for individual devices or boards or, most importantly, the ARM Architecture Reference Manual - ARMv8, for ARMv8-A architecture profile - the ARM ARM.

2020-03-21

ARMv8-A_Architecture.zip

ARMv8, for ARMv8-A architecture profile ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile

2020-03-21

Dowland.zip

本文档是从网络上下载文件,并且支持断点续传,可以在界面上有进度条显示,同时还有进度比例

2015-08-11

介绍了汇编的第一个程序

介绍汇编下 如何用汇编语言写个程序! 以及masm 的如何使用. 以及一些问题

2012-11-04

led驱动程序

本资源是关于ok6410下的led驱动程序!

2012-09-22

空空如也

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

TA关注的人

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