- 博客(44)
- 资源 (1)
- 收藏
- 关注
转载 S3C6410驱动I80接口LCM
在嵌入式的主流 LCD屏中主要支持两大类的硬件接口,一种是常见的RGB接口,另外一种是MCU接口.后面因为最早是针对单片机的领域在使用,因此得名.后在中低端手机大量使用,其主要特点是价格便宜的.MCU-LCD接口的标准术语是Interface 80,因此在很多文档中用I80 来指MCU-LCD屏。 MCU-LCD屏它与RGB-LCD屏主要区别在于显存的位置.RG
2014-06-15 23:19:42
1626
转载 Android LCD(三):Samsung LCD接口篇
关键词:android LCD控制器 Framebuffer PWM 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)欢迎指正错误,共同学习、共同进步!!下载链
2014-05-08 23:10:49
916
转载 Android LCD(二):LCD常用接口原理篇
Android LCD(二):LCD常用接口原理篇 关键词:android LCD TFT TTL(RGB) LVDS EDP MIPI TTL-LVDS TTL-EDP平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250
2014-05-08 22:30:42
882
转载 Android LCD(一):LCD基本原理篇
Android LCD(一):LCD基本原理篇分类: S5PXX(三星) 嵌入式入门 android2013-06-19 09:24 4844人阅读 评论(8) 收藏 举报关键词:android LCD TFT 液晶 偏光片 彩色滤光片 背光平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung ex
2014-05-08 22:28:45
990
原创 linearlayout布局中layout_weight使用问题
xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> and
2014-01-19 16:25:17
905
转载 android LinearLayout布局中layout_weight的使用(二)
一、LinearLayout内的控件的layout_width设置为"wrap_content",请看一下xml配置: LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:lay
2014-01-19 16:13:35
813
转载 android LinearLayout布局中layout_weight的使用(一)
在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性。1.当控件的属性android:layout_width="fill_parent"时,布局文件如下:
2014-01-19 16:08:01
998
转载 android:layout_gravity和android:gravity
1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Butt
2014-01-19 14:38:05
615
转载 关于subsys_initcall
在linux内核代码里, 到处充满了subsys_initcall,这个调用是用来干吗的呢?有人回答是系统启动时候用来初始化某些系统的,具体怎么初始化的呢,说起来还是有点复杂。以2.6.21内核作为例子。在linux/init.h里,有这样一段代码:#define pure_initcall(fn) __define_initcall("0",fn,1)#define core_
2013-09-26 13:16:02
788
转载 一线触摸tslib移植完全说明
我已经上传了完善好的源代码,已经加入对一线触摸的支持,如果想直接使用,不用自己加补丁:请到http://code.google.com/p/openwrt-for-embedded/,点击Download页面,下载tslib-one-wire.tar.bz2。但是建议你把下面的内容看完,以便使用这个已经加入对一线触摸支持的tslib。一开始接触时,感觉友善的
2013-09-25 16:30:47
1256
转载 使用diff命令打补丁详解
对于开源源码修改过程中的必经阶段:对源码打补丁,总是不够精通,搜索了补丁的原理的详细过程,如下:在移植或版本升级过程中,手动比对(用比对工具)转换是很费力的事情,特别是发生变化的文件非常多的情况下,“制作补丁、打补丁”可以简化这个过程。主要用到diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。
2013-09-25 14:59:38
1976
转载 ioctl compat_ioctl与unlock_ioctl
区别:ioctl 和 unlock_ioctlioctl 不会lock_kernel() compat_ioctl被使用在用户空间为32位模式,而内核运行在64位模式时。这时候,需要将64位转成32位。 引用http://blog.chinaunix.net/u1/38994/showart_2248151.html对几个ioctl执行顺序的分析 关于i
2013-09-21 11:32:57
2000
转载 platform_device与platform_driver
做Linux方面也有三个多月了,对代码中的有些结构一直不是很明白,比如platform_device与platform_driver一直分不清关系。在网上搜了下,做个总结。两者的工作顺序是先定义platform_device -> 注册 platform_device->,再定义 platform_driver-> 注册 platform_driver。 (1)platform_devic
2013-09-21 02:02:14
808
转载 Linux中__init、__devinit等初始化宏
内核使用了大量不同的宏来标记具有不同作用的函数和数据结构。如宏__init 、__devinit 等。这些宏在include/linux/init.h 头文件中定义。编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。下面是一些常用的宏:? ?__init ,标记内核启动时使用的初始化代码,内核启动完成后不再需要。以此标记的代码位于.init.text
2013-09-20 20:20:34
900
转载 关于EXPORT_SYMBOL
linux2.6的“/proc/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:[c-sharp] view plaincopyEXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名) 导出的符号可以被其他模块使用,不过使用之
2013-09-13 15:57:45
1024
原创 关于read函数
调用read函数从打开文件中读数据。如read成功,则返回读到的字节数。如已到达文件结尾,则返回0。有多种情况可使实际读到的字节数少于要求读的字节数: • 读普通文件时,在读到要求字节数之前已到达了文件尾端。例如,若在到达文件尾端之前还有30个字节,而要求读100个字节,则read返回30,下一次再调用read时,它将返 回0(文件尾端)
2013-08-31 20:41:37
2099
原创 STDIN_FILENO与stdin 的区别
stdin类型为 FILE*,STDIN_FILENO类型为 int使用stdin的函数主要有:fread、fwrite、fclose等C库函数调用,基本上都以f开头,用于高级IO操作,在中有声明;使用STDIN_FILENO的函数有:read、write、close等系统调用,用于低级IO操作;STDIN_FILENO等是文件描述符,是非负整数,一般定义为0, 1, 2,属于没有bu
2013-08-28 01:26:44
811
转载 深入理解Linux内核--信号
深入理解Linux内核--信号(阅读笔记)(原创)第十一章信号 信号用于在用户态进程间通信。内核也用信号通知进程系统所发生的事情。 1、信号的作用 信号(signal)是很短的消息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,以此来标识信号。 使用信号的两个主要目的 : 让进程知道已经发生了一
2013-08-24 21:37:55
976
转载 Linux进程睡眠和唤醒以及无效唤醒
1 Linux进程的睡眠和唤醒在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。当然,一个进程也可以主动释放CPU的控制权。函数 schedule()是一个调度函数,它可以
2013-08-22 10:51:09
2899
转载 进程调度
《Linux内核设计与实现》读书笔记(四)- 进程的调度Posted on 2012-09-04 16:10 wang_yb 阅读(442) 评论(0) 编辑 收藏主要内容:什么是调度调度实现原理Linux上调度实现的方法调度相关的系统调用1. 什么是调度现在的操作系统都是多任务的,为了能让更多的任务能同时在系统上更好的运行,需要一个管理程序来管理计算机上同时运
2013-08-21 23:54:20
917
转载 linux下的select函数
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a file descriptor for the
2013-08-19 15:55:20
763
原创 应用层的poll 函数介绍
poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明:#include int poll(struct pollfd fds[], nfds_t nfds, int timeout);参数说明:fds:一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个函数之后,系统不
2013-08-19 15:41:51
1027
原创 poll系统调用的内核态实现机制分析
字符设备驱动程序之按键—poll机制本节里我们在按键中断机制的基础上添加了poll机制来优化程序我们知道,应用程序中的open、read、write函数会调用内核里的sys_open、sys_read、sys_write函数,而内核里的这些函数又会对应到驱动程序里的.open、.read、.write函数。我们的poll机制也不例外,用户空间里可以采用poll函数或者select函数,他们
2013-08-18 20:36:16
2171
转载 linux内核中等待队列 (函数wait_event与wake_up)
根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t与完成量completion。 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。 完成量机制是基于等待队列的,内核利用该机制等待某一操作的结束。这两种经常被
2013-08-15 16:07:57
1783
转载 linux内核中的xx_initcall初始化标号
LINUX内核中有很多的初始化指示标志postcore_initcall(), arch_initcall(), subsys_initcall(), device_initcall(), etc. 这些起什么作用呢?查阅源代码(android goldfish-2.6.29)并搜索网上相关文章,对此做一总结。初始化标号先看这些宏的定义(定义在文件include/linux/ini
2013-08-09 01:50:45
931
转载 进程控制之 fork、wait、exec族函数 及进程资源控制
一,fork//头文件#include //函数定义pid_t fork( void );返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1函数说明:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子
2013-08-08 13:13:58
1404
转载 线程程序里不准使用fork ?
其实这是 UNIX上C++程序设计守则3准则3:多线程程序里不准使用fork在多线程程序里,在”自身以外的线程存在的状态”下一使用fork的话,就可能引起各种各样的问题.比较典型的例子就是,fork出来的子进程可能会死锁.请不要,在不能把握问题的原委的情况下就在多线程程序里fork子进程.那看看实例吧.一执行下面的代码,在子进程的执行开始处调用doit()时,发生死锁的机率会很高.
2013-08-08 13:08:58
883
转载 深入分析 Linux 内核链表
深入分析 Linux 内核链表杨沙洲 (pubb@163.net)国防科技大学计算机学院简介: 本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。发布日期: 2004 年 8 月 01 日 级别: 初级 访问情况 : 40400 次浏览 评论: 1 (查看 | 添加评论 - 登录) 平均分 (1
2013-08-07 23:32:15
806
转载 linux中断下半部实现机制之软中断
软中断保留给系统中对时间要求最严格以及最重要的下半部使用。目前,只有两个子系统---网络和SCSI直接使用软中断。此外,内核定时器和taskelet都是建立在软中断上的。对于时间要求严格并能自己高效完成加锁工作的应用,软中断会是正确的选择。 怎样使用软中断呢? 1.分配索引 在编译期间,可以通过中定义的一个枚举类型来静态声明软中断。索引号小的软中断在索引号大的软
2013-08-05 15:07:13
997
原创 异常 中断上下文 内核抢占
一个中断处理程序既可以抢占其他中断处理程序,也可以抢占异常处理程序,相反,异常处理程序从不抢占中断处理程序。在内核态能触发的唯一异常就是缺页异常。但是,中断处理程序从不执行可以导致缺页(因此意味着进程切换)的操作。
2013-08-04 16:40:57
1161
原创 内核抢占和用户抢占
用户抢占内核即将返回用户空间的时候,如果need_resched被设置,会导致schedule()被调用,此时就会发生用户抢占。在内核返回用户空间的时候,它知道自己是安全的,因为既然它可以继续去执行当前进程,那么它当然可以再去选择一个新的进程去执行。所以内核无论是从中断处理程序还是在系统调用后返回,都会检查need_resched标志。如果它被设置了,那么,内核就会选择一个其他(更合适的)进程
2013-08-04 02:46:01
956
转载 窥探 kernel - 浅析do_exit
本系列文章由张同浩编写,转载请注明出处:http://blog.youkuaiyun.com/muge0913/article/details/7483054进程在退出时,必须释放它所拥有的资源,并通过某种方式告诉父进程。进程的退出一般是显示或隐式地调用了eixt(),或者接受了某种信号。不过什么原因退出,最终都调用了do_exit。用于进程退出的系统调用有两个exit
2013-08-03 19:06:22
866
转载 kthread_create和kernel_thread的区别和总结
在看linux驱动代码的时候,经常惠会碰到kthread_create这个函数,google一下,发现很多人在讲二者的区别,但是都在讲源码的区别而已,总结不够,感觉没有说出二者之间的本质区别,自己总结下。 一. 源码分析(linux-2.6.39)1. kthread_create源码分析#define kthread_create(threadfn, data,
2013-08-03 18:36:03
849
转载 Linux内核spin_lock与spin_lock_irq分析
Linux内核spin_lock与spin_lock_irq分析在Linux内核中何时使用spin_lock,何时使用spin_lock_irqsave很容易混淆。首先看一下代码是如何实现的。spin_lock的调用关系 spin_lock | + -----> raw_spin_lock |+---
2013-08-02 17:50:20
843
转载 自旋锁spin_lock和raw_spin_lock
自旋锁spin_lock和raw_spin_lock/*****************************************************************************************************/声明:本博内容均由http://blog.youkuaiyun.com/droidphone原创,转载请注明出处,谢谢!/**
2013-08-02 17:23:40
756
原创 进程调度的时机及阻塞
引起进程调度的原因有以下几类进程调度发生在什么时机呢?这与引起进程调度的原因以及进程调度的方式有关。(1)正在执行的进程执行完毕。这时,如果不选择新的就绪进程执行,将浪费处理机资源。(2)执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等状态。(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了v原语操作激活了等待资源的进程队列。(4)执行中进程提出I/O请求后被
2013-07-31 16:58:13
1727
转载 关于内核进程0和进程1
Kernel Version: Linux 2.6.18_Pro500 (for Arm) Process 0 下面这段对进程0的描述引用自《Understanding The Linux Kernel - Third Edtion》The ancestor of all processes, called process 0, the idle proce
2013-07-31 13:03:41
1331
转载 typeof关键字
typeof关键字 container_of(ptr, type, member)中包含typeof关键字,我们在这分析一下typeoftypeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun StudioC 编译器就可以接受带有typeof的结构,包括以下语法类别:声明 函数声明符中的参数类型链表和返回类型 类型定义 类型操作符s sizeof操作符 复
2013-07-31 12:58:48
710
Linux Kernel Development 3rd Ed
2013-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人