自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 Linux下实现U盘、SD卡自动挂载功能 .

转载大神的一篇文章,个人感觉写的非常好,所以拿过来用

2017-10-29 23:29:25 512

转载 uboot的relocate代码分析

还是那句话:除了代码,神马都是浮云!

2014-07-01 10:48:55 635

原创 uboot目录介绍

1、第一类目录与处理器体系结构或者开发板硬件直接相关;2、第二类目录是一些通用的函数或者驱动程序;3、第三类目录是u-boot的应用程序、工具或者文档。Board:和一些已有开发板相关的文件,比如Makefile和u-boot.lds等都和具体开发板的硬件和地址分配有关。Common:与体系结构无关的文件,实现各种命令的C文件。CPU:CPU相关文件,其中的子目录都

2014-06-30 14:29:22 856

原创 SI3.5添加新的文件类型

大家用source insight看linux源码的时候都遇到这么一个麻烦,makefile和kconfig中的文字在搜索的时候不能找到,这是因为source insight默认是不选makefile的,也没有konfig这种类型的文件。下面就讲一下如何添加makefile:打开Source Insight,在新建工程之前,进入Options -> Document Options

2013-08-28 00:45:35 945

原创 Linux--中断

专业的linux驱动开发离不开中断处理,在处理中断,首先要注册中断,在linux下通过request_irq来注册中断的,不同内核版本,注册中断所需要的参数也不同,本文以linux-2.6.34为例,对比老版本进行说明。    request_irq()函数在include/linux/interrupt.h中定义,原型为:    static inline int __must_chec

2013-06-27 23:32:18 749

原创 LInux总线,设备和驱动

linux设备驱动归纳总结:总线、设备和驱动xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx这几天一直在看设备模型,内核的代码看得我越来越沮丧,特别是kboject、kset和ktype之间的关系。但是,设备模型的归纳我打算先跳过这几个重要结构体,先介绍总线、

2013-06-21 23:44:17 816

原创 Linux的同步机制

一、引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_semap

2013-06-04 23:29:09 609

转载 barrier 和 preempt_disable() 学习

#define preempt_disable() \do{ \    inc_preempt_count(); \    barrier();    \}while(0) 一、这个barrier 在干什么...    内存屏障出现因为编译器或现在的处理器常会自作聪明地对指令序列进行一些处理,比如数据缓存,读写指令乱序执行等等。如果优化对象是普通内存,那么一般会提升性能

2013-06-04 22:16:23 538

原创 container_of

linux中container_of【zz】2013年6月3日15:11:12自己的理解:参数1 file_ops                      参数2 属于哪个结构体                      参数3 参数2中的结构体当中哪个成员                      返回值:返回某个结构体变量的在内存中的首地址

2013-06-03 15:19:30 471

原创 signal_pending与返回-ERESTARTSYS

经常我们在睡眠的代码中 会看到这样的例子:if (signal_pending(current)) {ret = -ERESTARTSYS;return ret;}关于 -ERESTARTSYS到底是什么意思?  -ERESTARTSYS表示信号函数处理完毕后重新执行信号函数前的某个系统调用.也就是说,如果信号函数前有发生

2013-06-01 02:27:08 706

转载 信号量/互斥的理解

信号量实现的机制信号量是一种睡眠锁。它是实现同步操作,防止竟态的方式之一。任何进程在对共享数据进行读写操作之前必须获得用来保护共享数据的信号量,否则不能供访问权限,信号量会把这个访问进程放进一个等待队列中(这个等待队列是在信号量初始化过程中被初始化的),然后让其进入睡眠状态。这是处理器重新调度,去执行其他进程的操作。保护共享数据的信号量被释放,被这个信号量放进等待队列的进程会被激活,获得该信号

2013-05-03 11:22:25 729

原创 等待队列头init_waitqueue_head

等待队列头 |wait_queue_head_t | init_waitqueue_head() | DECLARE_WAIT_QUEUE_HEAD多个线程在等待同一件事件的发生时会进入睡眠状态,等待事件发生时,它们又会被唤醒从而结束休眠。在被唤醒的过程中,首先需要能够找到这些进程,而这些等待的进程由一个称为等待队列的数据结构维护着。等待队列就是一个进程链表,其中包含了所有等待某个

2013-05-03 11:07:45 3852

原创 register_chrdev_region()参数意义以及动态分配设备号

1. 字符设备结构体  内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:   static struct char_device_struct {       struct char_device_struct *next;    // 指向散列冲突链表中的下一个元

2013-05-01 00:31:17 2592

原创 register_chrdev_region()注册的问题

2013年5月1日0:27:48register_chrdev_region()主设备号、次设备号2008年03月23日 星期日 21:40分配并注册主次设备号    设备号是在驱动module中分配并注册的,也就是说,驱动module拥有这个设备号(我的理解),而/dev目录下的设备文件是根据这个设备号创建的,因此,当访问/dev目录下的设备文件时,驱动module就知道

2013-05-01 00:23:41 776

转载 Linux设备驱动--简单字符设备驱动程序

Linux设备驱动程序——简单字符设备驱动程序  一、重要知识点1. 主次设备号dev_t         dev_t是内核中用来表示设备编号的数据类型;int MAJOR(dev_t dev)int MINOR(dev_t dev)         这两个宏抽取主次设备号。dev­_t MKDEV(unsigned int major, unsignedi

2013-04-25 12:47:32 614

原创 mini2440 led驱动

mini2440 led驱动 2009-09-27 18:36:12|  分类:C++学习 |  标签:|字号大中小订阅 整理一下思路,刚刚看的mini2440 led驱动。mini2440的led接了4个GPIO,分别是GPB5-8关于这几个GPIO的寄存器描述可以看三星的文档,主要是GPBCON,GPBDAT和GPBUP,GPBC

2013-04-23 23:16:15 621

空空如也

空空如也

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

TA关注的人

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