自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——代码

直接来吧! 1、驱动程序 ①、blk.c#include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include /* error codes */#include #include

2012-05-25 15:52:27 1704 3

原创 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——代码

电脑总算是修好了!但是 JBL 音响又 TMD 出了问题!真心不逗!~~ 1、驱动程序 ①、blk.c#include #include #include #include #include /* printk() */#include /* kmalloc() */#include /* everything... */#include

2012-05-25 15:49:00 899

原创 【Tiny6410 And Linux】—(5.2)—RamDisk 驱动实现(自己绑定 make_request_fn() )——原理

电脑总是 TMD 坏!很让人烦气!块设备实验做完了,那个令人纠结的错误竟然是自己没有在意 x86 平台和 ARM 平台的驱动,所以 Makefile 是直接 cp 以前 ARM 平台的驱动来的,一堆错误!让人蛋疼拘谨!查啊查,后来找到国嵌源码,一看 Makefile,擦!顿时石化!好了,上一篇文章是关于内核的一个 IO 调度器,对于 ramdisk、U 盘、记忆棒之类的设备,并不存

2012-05-23 11:36:14 2868

原创 【Tiny6410 And Linux】—(5.1)—RamDisk 驱动实现(内核缺省的处理函数 __make_request())——原理

相信看过我写的文章的会大吃一惊!为什么突然由 2 到了 5,这也跨度太大了点吧,呵呵,不是的,因为前面的国嵌的几天的课程真的看不懂!你懂得!现在水平的确有限!DM9000 和 PCI 串口,这两天的内容只能暂时放下了,没有很好地教程,自己看了两天“瓶颈”又很多,所以~~ 好了,从今天开始就是块设备的驱动了!努力!哼哼! 1、块设备简介块设备将数据存储在固定大

2012-05-21 14:56:57 1551

原创 【Tiny6410 And Linux】—(2.4)—实现 input 模型按键驱动——代码

好了,白去修了趟电脑!日了,FUCK!初步鉴定是宿舍的电源不稳定,导致的!好了,赶紧的贴完代码,去趟自习室。 1、驱动程序 ①、input_btn_dev.c#include #include #include #include #include #include #include #define DEVICE_NAME "tin

2012-05-15 22:06:45 1682 1

原创 【Tiny6410 And Linux】—(2.4)—实现 input 模型按键驱动——原理

电脑的电源那特别烫!!!最讨厌的就是电脑出毛病了了,现在还得用别人的电脑,哎~~伤不起啊!回头又得花钱、花时间修电脑了!一想到这里就不爽!不过今天的学习进度还是要跟上的,通过 input 型模型按键驱动,看了看大概的,我感觉就是对驱动程序简化了!没有了 read、write、open、close 函数,貌似是内部集成似的,呵呵,所以用起来也就是简单多了!我感觉就可以有三个步骤,

2012-05-15 16:44:43 2027 1

原创 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——代码

做了做用工作队列处理按键中断的实验,对中断开始明白~~呵呵~~其实今天就是加了个全局变量(虽然这在驱动程序中不是很合适吧),还有就是加了个消抖(就是通过延时等待而已)! 1、驱动程序 ①、plat_btn_dev.c#include #include #include #include #include #include #include #

2012-05-14 23:07:22 1777 1

原创 【Tiny6410 And Linux】—(2.3)—使用工作队列处理按键中断——原理

休息了整整一个星期,(*^__^*) 嘻嘻……,一个字,爽!!!一个星期没有学习了,也就没有贴这些东西喽。不过今天是新的开始,所以就打算贴点东西上来,还是按键中断,不过是通过工作队列来实现的!我买的视频没有这些东西,所以只能自己看喽,我个人感觉使用工作队列来处理按键中断,很大的好处是可以消抖!别的还真没有看出什么东西来,呵呵。还有就是工作队列和等待队列是啥子关系呢暂时还真的不清楚。

2012-05-14 19:42:29 1511

原创 【Tiny6410 And Linux】——基于 platform 总线的按键驱动——代码

拿的国嵌的源码,稍微改动了,有几点还是不是很明白,但是也不能一直这么看啊看的!因为明天要考试,所以今天就赶紧发了!伤不起的,晚上看 PLC,呵呵! 1、驱动程序 ①、plat_btn_dev.c#include #include #include #include #include #include #include #define DEVI

2012-05-07 16:55:42 1308

原创 【Tiny6410 And Linux】—(2.2)—Linux 中断处理——原理

有点小烦躁!!! 1、Linux 中断接口函数 ①、request_irqrequest_irq头文件#include 函数原型int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,

2012-05-06 13:54:55 1432

原创 【Tiny6410 And Linux】—(2.1)—platform 总线、设备、驱动——代码

platform 无非就是内核中有一条总线而已,方便移植!个人感觉没有跟自己创建总线是木有区别的!当然相关的函数内核就自己处理了,省事,呵呵! 1、内核代码 ①、device.c#include #include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE

2012-05-06 11:02:09 1065

原创 【Tiny6410 And Linux】—(2.1)—platform 总线、设备、驱动——原理

后天就要考试了,PLC,呵呵,这个还不算什么事情,所以呢,继续! 1、platform总线介绍 一个现实的 Linux 设备和驱动通常都需要挂载在一种总线上,对于本身依附于 PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里,SoC 系统中集成的独立的外设控制器、挂载在 SoC内存空间的外设等确不依附于此类总线。基于这一背景,Linu

2012-05-06 10:42:09 958

原创 【Tiny6410 And Linux】—(1.5)—driver 设备模型——代码

三个中的最后一个! 1、内核代码 ①、bus.c还是跟上面的文章的一样,我依旧粘贴!! ②、driver.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LICENSE("GPL");extern struct bus_ty

2012-05-05 13:52:37 751

原创 【Tiny6410 And Linux】—(1.4)—device 设备模型——代码

这三个程序本是一体的!但是一开始写的时候有这个顺序,所以也就来这个顺序吧!! 1、内核代码 ①、bus.c这个代码跟上一篇文章的代码一样,我也就是拷贝的! ②、device.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_L

2012-05-05 13:48:24 640

原创 【Tiny6410 And Linux】—(1.3)—bus 设备模型——代码

又是一个周六,放假!无所事事,干脆整整代码吧,谁知道这也遇到不少问题,各种内核异常!!!!不过最后还是查出问题来了,主要是内核版本的更新,有的元素不再包含了! 1、驱动程序 ①、bus.c#include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LIC

2012-05-05 13:42:38 794

原创 【Tiny6410 And Linux】—(1.5)—driver 设备模型——原理

外边阴天了,看来避免不了一场大雨的降临!!在宿舍,挺爽的,喜欢雨,喜欢大雨!! 1、驱动描述结构 在 Linux 设备模型中,总线由 device_driver 结构表示,定义在 中。struct device_driver{ const char *name; /* 驱动程序的名字(体现在 sysfs 中) */ struct bus_t

2012-05-04 17:20:08 804

原创 【Tiny6410 And Linux】—(1.4)—device 设备模型——原理

上一节原理中有一个特别重要的东西:总线也是一个设备,必须按照设备注册!1、设备描述结构在 Linux 设备模型中,总线由 device 结构表示,定义在 中。其中 release 是必须要设置的!!!struct device{ struct device *parent; /* 父设备 */ struct device_pr

2012-05-04 16:57:05 765

原创 【Tiny6410 And Linux】—(1.3)—bus 设备模型——原理

今天能解决那个 kset,完全出乎自己所料,本来想以后遇到再说,呵呵。既然解决了,然后按照进程是 bus 设备模型! 首先,要明确,总线,设备,驱动,三者不分家!!就是说,这节写的总线,以及接下来的设备和驱动是相互联系的!而且这三个例程也是相互联系的,都是根据总线来创建设备,接着是驱动! 1、总线概念 总线是处理器和设备之间的通道,在设备模型中,所有的设备都通过总线连接

2012-05-04 16:24:25 720

原创 【Tiny6410 And Linux】—(1.2)—kset——代码

昨天做实验的时候没有成功,真的挺烦的,我怕我继续不下去,不过今天阳光挺好的,心情也就好点了,所以也就可以好好看看了!!竟然在 kset 的创建过程中,新版内核跟老板内核还是有差距的,其中 ktype 在新版内核中是必须要加的,(*^__^*) 嘻嘻…… 1、驱动程序 ①、kset.c#include #include #include #include #i

2012-05-04 14:04:52 700

原创 【Tiny6410 And Linux】—(1.2)—kset——原理

kobject 和 kset 本来就是相辅相成的,由于 kobject 只能创建一个目录,不能创建包含目录的目录,这里就要用到 kset!仔细观察 kobject 和 kset 结构中,在 kobject 结构中,有一个 struct kset *kset; 的结构声明,在 kset 结构中(马上就会写出来),有一个 struct kobject kobj;的结构声明,很明显它们是互相配合的喽

2012-05-03 12:36:13 656

原创 【Tiny6410 And Linux】—(1.1)—kobject——代码

总该有个先后,原理在上一篇文章也有介绍,所以这篇文章就是代码喽~~ 还是先是程序,然后是图! 1、驱动程序 ①、kobject.c #include #include #include #include #include #include #include MODULE_AUTHOR("_Justin");MODULE_LICEN

2012-05-02 17:50:45 627

原创 【Tiny6410 And Linux】—(1.1)—kobject——原理

开始学习设备驱动模型的学习,今天是 kboject 的相关原理! 从面相对象的观点,各种内核对象类都有一个基类, C 语言用结构封装类,围绕结构的操作函数为类的方法函数。内核对象的基类结构为 kobject。 不过说白了,我个人感觉跟 proc 文件系统是有很大相似点的(它们都是基于 ramfs 的文件系统)! 1、kobject 结构 kobject 是内核各种对

2012-05-02 14:07:05 829

空空如也

空空如也

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

TA关注的人

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