EMMC驱动分析

一、SD卡系列简介 这些都是网上找出来的,权当作为开场白了。 MMC卡全称Multi Media Card,由西门子公司和SanDisk公司1997年推出的多媒体记忆卡标准。MMC卡尺寸为32mm x24mm x 1.4mm,它将存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性...

2018-12-09 11:02:56

阅读数 277

评论数 0

EMMC驱动数据结构

结构体mmc_host定义于/include/linux/mmc/host.c,可以认为是linux为SD卡控制器专门准备的一个类,该类里面的成员是所有SD卡控制器都需要的,是描述主机控制器的共有结构,具体的控制器结构体包含结构体mmc_host,如: //该结构体有自己编写,根据实际项目来编写自...

2018-12-09 09:25:51

阅读数 89

评论数 0

标准linu休眠和唤醒机制分析(一)

说明: 1. Based on linux2.6.32,  only for mem(SDR) 2. 有兴趣请先参考阅读: 电源管理方案APM和ACPI比较.doc...

2018-10-28 17:56:48

阅读数 34

评论数 0

Linux网卡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangweiqing80/article/details/83185955 在嵌入式SOC上,通常集成有ARM核和MAC控制器,以及增加数据传输带宽的MAC专用DMA,对这种形式的SOC通常使...

2018-10-25 16:50:00

阅读数 126

评论数 0

PCI设备驱动程序

PCI总线是现在非常流行的计算机总线,学会它的驱动设计方法很重要。相信曾经想学习PCI总线驱动的人有这么一个经历,就是去看那些讲解PCI总线驱动的书籍和资料的时候,会被里面繁杂的内容所击败,又是什么配置空间又是什么枚举的,还没开始真正的去写PCI的驱动,到这里就已经开始打退堂鼓了。其实,只要你认真...

2018-10-24 18:05:40

阅读数 821

评论数 0

PCI设备驱动之设备

https://www.cnblogs.com/image-eye/archive/2012/02/15/2352699.html 四、PCI设备的枚举探测过程 在内核启动过程中,PCI设备的探测过程是完全自动的,内核已经集成好了方法,我们无需更改,在这里还是分析一边代码作为了解。 分析之前...

2018-10-24 16:22:07

阅读数 163

评论数 0

linux内核之工作队列

在我的文章Linux内核:软中断、tasklet中,我们已经了解了中断底半部的两种实现方式,即软中断和tasklet微线程。但是这两种方式归根结底都是采用软中断机制的,其根本上还是在中断的上下文中执行,所以这也就要求了采用这两种方式编写中断底半部,不能出现一些可能导致程序休眠或者是延迟的函数(虽然...

2018-10-23 15:45:45

阅读数 48

评论数 0

Linux内核之tasklet

中断下半部使用tasklet: 手把手教你写Linux设备驱动—中断(二)–tasklet实现(基于友善之臂4412开发板) 其实,tasklet的实现就是基于软中断的。 软中断初始化函数softirq_init()中注册了两个tasklet软中断。 void __init softirq...

2018-10-22 17:53:31

阅读数 40

评论数 0

Linux 之软中断softirq

softirq驱动开发人员一般都不会用到,到内核代码中会用到softirq机制,如在timer定时器中有用到softirq机制。。。 下面我们来简单了解一下Linux中的软中断的使用。 注册软中断处理函数open_softirq void open_softirq(int nr, v...

2018-10-22 16:50:13

阅读数 68

评论数 0

linux内核中断

统一入口 entry-armv.S .align 5 __irq_svc: svc_entry #ifdef CONFIG_TRACE_IRQFLAGS bl trace_hardirqs_off #endif #ifdef CONFIG_PREEMPT get_th...

2018-10-22 15:35:37

阅读数 40

评论数 0

Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解

  进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在...

2018-10-22 15:07:54

阅读数 21

评论数 0

pci总线

https://blog.csdn.net/notbaron/article/details/79643799 https://blog.csdn.net/notbaron/article/details/80346988 https://blog.csdn.net/zyboy2000/art...

2018-10-19 17:45:08

阅读数 119

评论数 0

完成量

在驱动程序开发中,一种常见的情况是:一个线程需要等待另一个线程执行完某个操作后,才能继续执行。这个工作其实信号量也可以完成,但其效率比Linux中专门针对这种情况的完成量机制要差些 一、完成量概述 Linux中提供了一种机制,实现一个线程发送一个信号通知另一个线程开始完成某个任务,这种机制就是...

2018-10-17 11:39:53

阅读数 147

评论数 0

linux内核线程

内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernle thread)完成,内核线程是独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL;它只在内核空间运行,从来不切换到用户空间去;并且和普通进程一样,可以被调度,也...

2018-10-16 18:22:49

阅读数 586

评论数 0

linux内核等待队列

等待队列在linux内核中有着举足轻重的作用,很多linux驱动都或多或少涉及到了等待队列。因此,对于linux内核及驱动开发者来说,掌握等待队列是必须课之一。 Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待...

2018-10-15 17:43:23

阅读数 29

评论数 0

linux 内核 current全局变量

在内核的API里经常能够见到一个指针current,它表示的是当前的进程(如果说是一个全局变量虽然不合理,但更容易理解) linux 内核 current全局变量

2018-10-15 17:03:37

阅读数 47

评论数 0

Mutex 互斥锁

1、理解互斥锁? 互斥锁的使用也是保持内核临界区的同步的,互斥锁可以说源于信号量,信号量设置计数器可以容许n个进程并发的访问临界区,而互斥锁不行,只能容许每次一个进程访问,也就是计数器值为1的信号量,可以这么理解。互斥锁和自旋锁有不同(显然的),互斥锁在中断处理程序中和可延迟函数中都不能使用,因...

2018-10-15 15:59:07

阅读数 139

评论数 0

linux内核链表

链表有一个“头指针”变量,图中以head表示,它存放了一个地址,该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包含两个部分:用户需要用的数据、下一个结点的地址。这样,head结点指向第一元素,第一个元素指向第二个元素…直到最后一个元素 ...

2018-10-15 11:11:49

阅读数 28

评论数 0

信号量

Linux中的常用信号量是锁的另一种实现机制,Linux中提供了两种信号量,一种用于内核程序中,一种用于应用程序中。这里讲解的是内核中的信号量 一、信号量概述 和自旋锁一样,信号量也是保护临界资源的一种有用方法。信号量只有当得到信号量时,进程或者线程才能够进入临界区,执行临界代码(down等函...

2018-10-13 17:08:06

阅读数 1251

评论数 1

自旋锁

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangweiqing80/article/details/83014292 1.定义和初始化自旋锁 一个自旋锁必须初始化才能被使用,对自旋锁的初始化可以在编译阶段通过宏来实现,初始化自旋锁可...

2018-10-12 18:38:00

阅读数 15

评论数 0

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