- 博客(29)
- 资源 (5)
- 收藏
- 关注
转载 linux输入子系统
1、为何引入input system? 以前我们写一些输入设备(键盘、鼠标等)的驱动都是采用字符设备、混杂设备处理的。问题由此而来,Linux开源社区的大神们看到了这大量输入设备如此分散不堪,有木有可以实现一种机制,可以对分散的、不同类别的输入设备进行统一的驱动,所以才出现了输入子系统。 输入子系统引入的好处:(1)统一了物理形态各异的相似的输入设备的处理功能。例如,各种
2016-11-01 20:15:09
376
转载 SD/MMC 初始化及热插拔检测机制
SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,SD卡与MMC卡保持着向上兼容。SD卡的内部结构主要分两部分:SD控制器和NAND存储器。 SD卡类型总共分成三种:MMC卡,结构类似SD卡,采用MMC协议;SD1.0,SD1.0卡最大支持2Gbyte;SD2.0,SD2.0卡最大容量HCSD可达32Gbyte。从MMC到SD1.0再到SD2.0协议是向上兼容
2015-07-22 16:03:01
6383
转载 在ubuntu下获取对应内核源码命令
输入:apt-cache search linux-source //查看内核版本输入:apt-get install linux-source-3.0.0 //获取对应版本的内核,默认安装在/usr/src目录下见:Ubuntu下构建内核源码树的方法 ubuntu下编译本机模块是否需要下载内核源码呢?答案是可以的。
2015-02-02 14:32:39
659
转载 基于linux-2.6.38.8内核的SDIO/wifi驱动分析
1、sdio接口层解析SDIO总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的 通信 都是 由HOST端 发送 命令 开始的,Device端只要能解析命令,就可以相互通信。 CLK信号:HOST给DEVICE的 时钟信号,每个时钟周期传输一个命令。 CMD信号:双向 的信号,用于传送 命令
2014-08-26 22:48:27
1009
原创 QUALCOMM MDM9X15 LCD初始化流程
先来看一下 board-9615.c 文件MACHINE_START(MSM9615_CDP, "QCT MSM9615 CDP").map_io = msm9615_map_io,.init_irq = msm9615_init_irq,.handle_irq = gic_handle_irq,.timer = &msm_timer,.init_machine =
2014-07-31 10:57:28
2774
转载 QCom MSM平台显示屏Framebuffer设备注册过程
本文是Android Display部分分析的一部分,描述屏Framebuffer设备注册过程。QC MSM7xxx/MSM8xxx平台本身就提供了很多接口的屏的支持,每种屏对应一个驱动文件。由于QC MSM平台显示驱动架构做了绝大部分的工作,驱动一块新的屏仅需要做很少量的工作。下面的过程是屏Framebuffer注册过程的分析。设备资源申请是在MACHINE_DESC中实现的。示
2014-07-31 10:20:19
1373
原创 linux popen函数学习
popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写.command 参数 是 一个 字符串指针, 指向的是一个 以 null 结束符 结尾的字符串, 这个字符串包含 一个 shell 命令. 这个命令 被送到 /bin
2014-07-30 14:39:56
631
转载 USB枚举过程
1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。 USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统
2014-06-04 12:55:56
600
转载 执行shell脚本的三种不同情况
shell 脚本执行是一个很有意思的事情,有三种不同的基本情况。这也是linux系统灵活性的一种体现。在我开始做LFS之前,我只会做一种shell脚本的执行 方式。那就是在当前目录下 ./shell-script.sh。哈哈,最近看了一些文章的解释之后,发现我真是太土了。以前看过一些linux programming的书,知道fork的概念。fork是一种主要的linux创建子进程的方式。fo
2014-04-09 13:44:33
1699
转载 TR069协议向导—— 一个帮助你了解TR069协议的简明教程(二)
您也可以通过以下链接下载该文:http://download.youkuaiyun.com/source/994937 上接“TR069协议向导(一)”6.TR069协议的RPC函数(或称RPC方法) 如上所述ACS与CPE之间通过TR069协议特有的RPC方法进行互操作。 CPE函数由ACS调用,用来对CPE进行管理如:设置CPE参数、获取CPE参数、硬件升级
2014-02-13 10:07:24
1163
转载 TR069协议向导——一个帮助你了解TR069协议的简明教程(一)
您也可以到以下地址下载:http://download.youkuaiyun.com/source/993034 1.为什么需要TR069 随着VoIP、IPTV等越来越多IP终端设备的普及(尤其在家庭中的普及),大量设备的配置和维护变得越来越困难,大大提高了网络产品运营商的成本,传统的基于SNMP的网管系统面对众多的终端设备时显得力不从心,限制了宽带接入市场的发展速度和规模。
2014-02-13 10:06:07
905
原创 使用Eclipse调试Android Launcher
使用Eclipse调试AndroidLauncher使用Eclipse新建一个AndroidProject 选择File->New->Android Project出现下面对话框填写Project Name,选择Createproject from existing source,点击Browse添加Launcher2的源代码路径packages\apps\Lau
2013-12-31 17:31:16
805
原创 Linux设备驱动初始化流程
Linux设备驱动初始化的流程一直不是很清楚,今天仔细看了一下linux初始化部分的代码才真正的搞明白,记录下来。 做过驱动的同学都知道,在arch/arm/目录下有和板级配置相关的文件,我使用的是Fresscale i.MX28开发板,在arch/arm/mach-mx28/目录下有mx28evk.c文件,该文件中有开发板初始化需要调用的函数。MACHINE_STAR
2013-09-17 17:49:11
3147
原创 Linux mdelay与msleep的区别以及中断中不能休眠的原因
在linux driver开发中,经常要用到延迟函数:msleep,mdelay.虽然msleep和mdelay都有延迟的作用,但他们是有区别的:mdelay是忙等待函数,在延迟过程中CPU无法运行其他任务。最好用于短时间的延时,否则太浪费CPU资源。msleep会使当前进程进入休眠状态,CPU可以去执行其他任务。由于msleep涉及到进程调度,延时误差比较大(进程调度需要耗费时间
2013-06-05 14:11:56
2686
1
转载 Linux LCD驱动(四)--驱动的实现
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb
2013-05-29 23:31:24
656
转载 Linux LCD驱动(三)--图形显示
3. BMP和JPEG图形显示程序3.1 在LCD上显示BMP或JPEG图片的主流程图首先,在程序开始前。要在nfs/dev目录下创建LCD的设备结点,设备名fb0,设备类型为字符设备,主设备号为29,次设备号为0。命令如下:mknod fb0 c 29 0在LCD上显示图象的主流程图如图3.1所示。程序一开始要调用open函数打开设备,然后调用ioctl获取设备相关信息,接下来就
2013-05-29 23:13:46
720
转载 linux LCD驱动(二)--FrameBuffer
2. Linux 驱动2.1 FrameBufferLinux是工作在保护模式下,所以用户态进程是无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Lin仿显卡的功能,将显ux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成
2013-05-29 23:12:37
937
转载 linux LCD驱动(一)--硬件分析
一 实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容(1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置(2)在LCD上显示
2013-05-29 23:10:46
664
转载 关于android不能启动的问题 untracked pid exited
ok6410nandflash init: untracked pid exited init: cannot find '/system/etc/init.OK6410.sh', disabling 'OK6410-setup'/system/bin/sh: can't access tty; job control turned off/ # enabling adbad
2013-05-09 15:49:03
5438
转载 LINUX系统休眠与唤醒
系统挂起(Suspend)是电源管理(APM&ACPI)的一个特性,给用户带来了很大的方便。Linux在2.6系列核心中对电源管理有了较好的支持,下面就谈谈Linux对系统挂起的支持情况。Linux对系统挂起的支持 Linux同时提供了对APM和ACPI的支持,当时两者是不兼容的,同一时刻只能有一种机制工作。由于ACPI的优越性,所以现在Linux将ACPI设为缺省的电源管理方案。对于一
2013-03-07 14:28:51
965
原创 ubuntu安装samba实现与windows共享文件
最近重新在ubuntu上安装了samba服务器,记录下来,防止以后忘了怎么安装。 1、安装samba软件包 sudo apt-get install samba sudo apt-get install smbfs 2、给samba添加用户 sudo smbpasswd -a username(username必须是已存在的) 3、修改/e
2013-01-06 10:04:43
700
原创 linux中断下半部机制
Linux内核可以有三种方法来实现中断下半部:sotfirq、tasklet 和workqueue1、softirq软中断一般很少用于实现中断下半部,但tasklet是通过软中断实现的,所以先介绍软中断。字面理解,软中断就是软件实现的异步中断,它的优先级比硬中断低,但比普通进程优先级高,同时,它和硬中断一样不能休眠。 在kernel/softirq.c文件中有这样一个数组
2012-12-21 16:49:29
766
原创 Linux中console初始化流程
Linux中console初始化流程在init/main.c文件asmlinkage void __init start_kernel(void)函数中调用console_init()函数 (该函数位于driver/char/tty_io.c文件中) /* * Initialize the console device. This is called *earl
2012-12-18 16:42:01
1652
转载 ubuntu /mnt/hgfs目录下什么都没有
今天突然发现虚拟机ubuntu中 /mnt/hgfs/目录下什么都没有了,经常使用的与windows共享的文件夹竟然消失了。在网上苦苦寻找原因,发现通过下面的命令可以解决: sudo apt-get install open-vm-dkms sudo mount -t vmhgfs .host:/ /mnt/hgfs
2012-11-04 11:36:58
1437
原创 DNW中显示乱码
DNW中显示乱码[root@rootfs /]#ls[1;34mbin [0m [1;34mdev [0m [1;34metc [0m [1;34mhome [0m [1;34mlib [0m [1;34mmnt [0m [1;34mproc [0m [1;34msbin [0m [1;34msys [0m [1;34mtmp [0m [1;34musr [0m [1;34mvar [0m
2012-08-18 18:20:06
1452
原创 pppd移植
pppd的移植分为两个部分:1、内核的配置 Device Drivers ---> [*] Network device support ---> PPP (point-to-point protocol) support [*] PPP multilink s
2012-06-16 17:52:47
1969
原创 minicom移植
1、ncurses源码包下载(ncurses-5.5.tar.gz) ncurses提供字符终端处理库,包括面板和菜单,minicom配置时生成菜单就是由ncurses生成的。 2、minicom源码包下载(minicom-2.4.tar.gz)3、解压nucrses源码包,切换目录进去。配置ncurses ./configure CC=arm-none-li
2012-05-12 11:52:52
2573
原创 linux中tar命令
tar命令参数:-c 创建一个压缩包(creat)-x 解压一个压缩包(extract)-z .tar.gz格式,使用gzip解压或压缩-j .tar.bz2格式,使用bzip2解压或压缩-v 显示文件(verbose)-f 使用文档名-C 设置路径对于.tar.gz或者.tgz的压缩包使用
2012-05-06 22:55:29
618
转载 指定初始化(designated initialize)
对linux内核代码中的结构体的初始化如:struct device my_dev ={ .bus = &my_bus_type, .parent = &my_bus, .release = my_dev_release,}; 上面这种方式称为指定初始化(designated initialize)。它源自ISO C99标准。
2012-05-05 23:55:09
1007
SD/SDIO 协议
2014-09-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人