- 博客(14)
- 资源 (11)
- 收藏
- 关注
转载 gpio linux 实现模型
<br />GPIO是与硬件体系密切相关的,linux提供一个模型来让驱动统一处理GPIO,即各个板卡都有实现自己的gpio_chip控制模块:request, free, input,output, get,set,irq... <br /><br /> 然后把控制模块注册到内核中,这时会改变全局gpio数组:gpio_desc[]. <br /><br /> 当用户请求gpio时,就会到这个数组中找到,并调用这个GPIO对应的gpio_chip的处理函数。 <br /><b
2010-12-30 23:55:00 1810
转载 ARM 指令集>>跳转指令
<br />一、跳转指令<br />跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转:<br />Ⅰ.使用专门的跳转指令。<br />Ⅱ.直接向程序计数器PC 写入跳转地址值。<br />通过向程序计数器PC 写入跳转地址值,可以实现在4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC 等类似指令,可以保存将来的返回地址值,从而实现在4GB 连续的线性地址空间的子程序调用。<br />ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间
2010-12-25 16:19:00 1502
转载 深入理解硬盘的Linux分区
<br />在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛。<br /><br /> 在这个过程中间,最大的困惑莫过于给硬盘进行分区。<br /><br /> 虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手。这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法。<br /><br /> 下面从这两个方面入手,来讲解这个困扰大家的问题。<br /><br /> Linux 的
2010-12-15 08:59:00 673
转载 I/O多路复用详解(二)
孔令春 posted @ 2009年10月15日 20:57 in 内功修行 with tags pselectpoll , 418 阅读 <br /> 2、pselect函数<br /> pselect函数是由POSIX发明的,如今许多Unix变种都支持它。 ?123456#include <sys/select.h> #include <signal.h> #include <time.h> intpselect(intmaxfdp1, fd_set *readset, fd_set *wr
2010-12-06 14:50:00 796
转载 poll()函数的使用
<br />poll函数用于监测多个等待事件,若事件未发生,进程睡眠,放弃CPU控制权,若监测的任何一个事件发生,poll将唤醒睡眠的进程,并判断是什么等待事件发生,执行相应的操作。poll函数退出后,struct pollfd变量的所有值被清零,需要重新设置。<br />示例是使用poll函数来监测按键的输入----------------------------------------------------------------------------------------------------
2010-12-06 09:23:00 3774
转载 C++和JNI的数据转换
<br />如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:<br />利用VC++6.0实现JNI的最简单的例子 <br />JNI入门教程之HelloWorld篇 <br />SUN JNI Tutorial<br /><br />这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我们在C++中有一个结
2010-12-03 17:30:00 1075
转载 inotify -- Linux 2.6 内核中的文件系统变化通知机制
<br />一、 引言<br />众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,
2010-12-02 19:09:00 640
转载 Android Framework 分析
http://raymond1860.spaces.live.com/Blog/cns!BF47B6FD104579C9!797.entry1.目录树/framework/base/api /framework/base/awt/framework/base/build/framework/base/camera 关 于camera的HAL接口库。最终生成native共享库libcamera.so ,编译时根据是否定义USE_CAMERA_STUB来决定系统是否有Camera硬件支持。若没有实际的Camer
2010-12-02 15:47:00 1284
转载 Linux Kernel and Android休眠与唤醒
标签:LinuxandKernelAndroid版本信息<br /><br /><br /> Linux Kernel: v2.6.28 <br /> Android: v2.0<br /><br /><br /><br />对于休眠(suspend)的简单介绍<br /><br />在Linux中,休眠主要分三个主要的步骤:版本信息Linux Kernel: v2.6.28 Android: v2.0 对于休眠(suspend)的简单介绍<br />在Linux中,休眠主要分三个主要的步骤:冻
2010-12-02 13:16:00 929
转载 Android Keyboard/Touch Panel分析
分析一下 Android 是如何读取按键及Touch Panel 的驱动的。主要在$(ANDROID_DIR)/frameworks/base/libs/ui/EventHub.cpp这个文件中,这是在 HAL 层,将一步步分析 Android 上层是如何接受事件的。 一, 先看一下 Android HALClass EventHub 在 $(ANDROID_DIR)/frameworks/base/include/ui/eventhub.h 定义. i. scan_dir(const char *dir
2010-12-01 21:51:00 2595
转载 关于构造IOCTL命令的学习心得
在编写ioctl代码之前,需要选择对应不同命令的编号。为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非串行设备输入流修改波特率,如果每一个ioctl命令都是唯一的,应用程序进行这种操作时就会得到一个EINVAL错误,而不是无意间成功地完成了意想不到的操作。 要按Linux内核的约定方法为驱动程序选择ioctl编号,应该首先看看include/asm/ioctl.h和Doucumention/ioctl-nu
2010-12-01 18:05:00 957
转载 Android键盘系统
<br />Android键盘系统<br /> Android中的键盘系统的生命周期从系统的启动开始到系统的关闭一直存在着,因为,在这整个过程中我们希望按下的没一个按键都会有相应的事件发生。通过调研发现,Android键盘系统贯穿着Android框架的最底层——Linux内核(驱动)到上层JAVA架构层——SystemServer。<br />与android键盘系统关系紧密的几个文件从下层往上层依次为:Goldfish_event.c(处于Linux内核)、EventHub.cpp(硬件抽象层)、c
2010-12-01 17:36:00 1927
转载 Android键盘系统相关代码分析(1)
<br />EventHub.cpp文件中open_device函数浅析<br /> <br /> 用户态中,与内核态联系紧密的一个函数是open_device,它位于EventHub.cpp文件中,该函数有大量的底层操作,以完成上层对硬件的操作。该函数的首部为:<br />int EventHub::open_device(const char *deviceName)<br />其中参数有scan_dir()函数获得。在这里,deviceName=”/dev/input/event0”<br
2010-12-01 17:30:00 1918
转载 c++ 标准模板库 List
<br />Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. <br /><br />assign() 给list赋值 <br />back() 返回最后一个元素 <br />begin() 返回指向第一个元素的迭代器 <br />clear() 删除所有元素 <br />empty() 如果list是空的则返回true <br />end() 返回末尾的迭代器 <br />erase() 删除一个元素 <br />front() 返回第
2010-12-01 11:20:00 1465
linux2.6在s3c2410上全线移植
2010-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人