Linux驱动知识
andyhuabing
这个作者很懒,什么都没留下…
展开
-
objcopy命令详解
objcopy把一种目标文件中的内容复制到另一种类型的目标文件中.(1)将图像编译到可执行文件内Q: 如何将一个二进制文件,比如图片,词典一类的东西做为.o文件,直接链接到可执行文件内部呢?A:$ objcopy -I binary -O elf32-i386 -B i386 14_95_13.jpg image.o$ gcc image.o tt.o -o t转载 2011-12-26 11:39:32 · 3489 阅读 · 0 评论 -
红外 IR 协议原理分析
1、概述:对多种红外遥控器的信号进行分析,其发出的红外指令中,引导码各不相同,而且后面的控制指令也有较大差别,甚至指令码的位数也不相同,原因是这些红外设计没有遵守相同的红外标准。但是其基本思想是相同的,即采用不同周期和不同占空比的脉冲分别表示逻辑0及1,只要根据期占空比及脉冲周期进行解析即可得到具体的按键码值。2、协议种类:市面上基本上有如下几大类协议:NEC with sim原创 2012-07-05 09:05:52 · 23617 阅读 · 4 评论 -
文件映射IO(mmap-mprotect-msync-munmap)函数
本文介绍在POSIX环境使用文件映射IO操作的方法,文件映射IO又被称为存储映射IO,对于普通文件而言,很多时候它是高效的,它实际减少了数据的复制;同时它也可以用于特殊的地方,用于进程之间的通信,共享内存的一种方式。我们能够把一个文件想象成一块连续的数据,从纯粹的数据角度来看,任何普通文件都可以这么理解。文件映射实际上是把文件的这块数据与我们程序里的一块内存对应上了,使用我们操原创 2015-01-04 16:05:56 · 3844 阅读 · 0 评论 -
linux --- inotify 文件系统变化通知机制
linux --- inotify 文件系统变化通知机制在linux下开发过程中,用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行原创 2013-06-08 10:08:32 · 8658 阅读 · 1 评论 -
linux MTD FALSH管理设计
由于loader升级需要使用flash来保存数据,但在android系统上又没有合适的接口使用,因此对MTD接口设计研究了一下并移植了flash管理代码,有些心得记录一下。专有名词:1. MTD:Memory Technology Device,内存技术设备,2. JEDEC:Joint Electron Device Engineering Council,电子电器设备联原创 2012-08-02 17:35:15 · 6586 阅读 · 0 评论 -
VNCServer 使用
Virtual Network Computing(VNC)是进行远程桌面控制的一个软件。客户端的键盘输入和鼠标操作通过网络传输到远程服务器,控制服务器的操作。服务器的图形界面通过网络传输会客户端显示给用户。给你的感觉就像直接在操作本地计算机一样,只是所有的程序和命令都是在服务器端执行。下面结合两个不同的linux系统: Redhat 5.5 及 Ubuntu 11 版本简要说明一下:原创 2012-02-24 15:02:59 · 9167 阅读 · 1 评论 -
总结下linux下的IPC使用原理及注意事项
首先说明一下mmap函数用途:采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读 写取代I/O读写,以获得较高的性能;2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;适用于具有亲缘关系的进程之间。由于父子进程特殊的亲缘关系,在父进程原创 2011-07-08 16:49:41 · 2720 阅读 · 0 评论 -
linux 条件变量与互斥锁
条件变量,与锁不同, 条件变量用于等待某个条件被触发基本编写的代码如下:// 线程一代码 =================================================pthread_mutex_lock(&mutex);// 设置条件为true... 操作pthread_cond_signal(&cond); // 条原创 2012-06-07 17:34:08 · 3988 阅读 · 0 评论 -
android - IR 遥控器无效
问题:由于升级了SDK导致遥控器无法使用,对于ir驱动的代码没有进行修改,完全一致,升级前遥控器可以使用,但升级使用不了。问题分析:1、驱动加打印,确认按键消息是否有发送void ir_input_event_irCallback(void *pParam, int iParam) 调用了input_report_key及input_sync进行按键发送了,这块应原创 2012-05-11 19:02:24 · 6172 阅读 · 4 评论 -
linux2.6内核,如何指定内核启动参数
前两天调试加载文件系统时,由于cfe中参数写不进去,直接在内核中写死参数,碰到一个问题:static int __init init_setup(char *str){unsigned int i;execute_command = str;/** In case LILO is going to boot us with default command l原创 2012-02-20 15:14:08 · 3851 阅读 · 0 评论 -
Linux系统启动的标准流程
Linux系统启动的标准流程系统的启动是指从计算机加电到显示用户登陆提示的整个过程。我们将在这里对整个流程以及关系到的一些内容做讨论。过程主要可以分为两个阶段:载入内核和准备运行环境,我们分别进行讨论。本部分的讨论只基于i386硬件架构,但大部分内容是有共通性的。图一 启动过程综述载入内核(将内核载入内存,并将控制权传递给它) 计算机加电到Boot Loader开始工作,转载 2012-03-14 11:08:18 · 1463 阅读 · 0 评论 -
OS21操作系统——概述
1.OS21概述 OS21是一个免费、轻量级的多任务实时操作系统,基于OS20 API设计,使用GNU工具进行编译,gdb进行调试。目前OS21主要用于ST公司的机顶盒主芯片(ST40/ST200)中,与应用程序一道生成单一映象文件,具有相同的地址空间与名字空间,以及相同的特权模式。 OS21采用了多优先级、占先式的任务调度算法,任务之间使用信号量、互斥锁、事件标签进行同步;使原创 2011-12-30 21:02:48 · 2345 阅读 · 0 评论 -
PMEM- kernel空间映射到用户进程空间
在android系统需要使用到pmem物理空间及ashmem匿名空间,其实pmem就是一块连续的物理内存空间,可以建立一个设备结点给用户空间进行访问。1、内核驱动编写:struct android_pmem_platform_data{ const char* name; unsigned long start; unsigned long size; unsigned原创 2011-12-30 17:07:15 · 1868 阅读 · 0 评论 -
linux下解压或压缩文件方法
大家经常碰到在linux下面解压大型的*.zip文件,一般常用winrar直接在smb中解压,但一般会存在解压解压时间长且有时候网络原因出错。所以特意查了一下linux下面的解压工具。1、linux自带的unzip命令可以解压windows下的zip格式的压缩文件。unzip命令 语法:unzip [选项] 压缩文件名.zip 各选项的含义分原创 2012-01-07 13:58:30 · 2133 阅读 · 2 评论 -
linux-android 中内核同步方法
今天下午有点空,就不写代码吧,整理一下系统知识,以便自已理一下这些小知识点。使用锁的大原则: 针对数据而不是代码加锁!!!需要使用特定的锁来保护自已的共享数据,比如对struct foo中的lo_lock变理加锁,无论何时访问数据,一定要保证数据是安全的,而保证数据安全则意味着操作前使用恰当的锁,完成操作后再释放它。1、原子操作顾名思义就是保证指令以原子方式执行而不原创 2012-06-07 17:16:41 · 3837 阅读 · 1 评论