自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 ov9650摄像头驱动之——linux内核v4l2架构分析3

NO.3 V4L2的API和数据结构V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。1、常用的结构体在内核目录include/linux/videodev2.h中定义 struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFS struct v4l...

2013-02-22 09:25:00 161

转载 ov9650摄像头驱动之——linux内核v4l2架构分析2

NO.2 Camera解码器、控制器1.根据camera控制器的描述,图像传输有两个DMA通道,我们用的是C通道,所以先将DMA内存初始化,因为在V4L2操作中有把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址的操作所以DMA在用之前要初始化,包括实际物理地址的计算init_image_buffer(camera_dev);// 初始化...

2013-02-21 09:53:00 173

转载 ov9650摄像头驱动之——linux内核v4l2架构分析1

本系列准备分为3-4篇来讲,因为说的太多会比较乱v4l2视频驱动主要涉及几个知识点:摄像头方面的知识(摄像头厂家提供的芯片手册可以查看)要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类型等。Camera解码器、控制器(主控芯片的芯片手册里面有摄像头相关的寄存器设置,比如2410里,里面主要是设置相关控制功能使能,芯...

2012-12-11 15:27:00 231

转载 linux内核I2C子系统学习(三)

写设备驱动:四部曲:构建i2c_driver注册i2c_driver构建i2c_client( 第一种方法:注册字符设备驱动、第二种方法:通过板文件的i2c_board_info填充,然后注册)注销i2c_driver具体如下:●构建i2c_driverstatic struct i2c_driver pca953x_drive...

2012-12-05 19:09:00 110

转载 linux内核I2C子系统学习(二)

下面具体分析如何写第一部分:主控芯片的i2c驱动分为2个步骤:写总线驱动:选了个主控芯片,比如:S3C8900(自己瞎编的芯片)在driver/i2c/busses/i2c-s3c2410.c中没有找到这个芯片的I2C支持(总线驱动支持)。。。(倒霉了,没有选好芯片,也可能是最新型号的,linux内核没跟上)在此之前先分析i2c-s3c2410.c中完成的工作...

2012-12-05 19:06:00 91

转载 linux内核I2C子系统学习(一)

这部分准备分几个部分进行分析总结因为I2C的通信肯定至少要有2个芯片完成,所以它的驱动是由2大部分组成:主芯片的i2c的驱动从芯片的i2c的驱动注:万一选的都不支持咋办???(惨了,只能2个芯片的驱动都得实现了,不过过程差不多)(一).主芯片的I2C的驱动:(具体如何实现在后面在具体讲解)首先要查看linux内核是否支持主芯片中i2c驱...

2012-12-04 19:41:00 111

转载 linux内核SPI总线驱动分析(二)

SPI驱动编写简而言之,SPI驱动的编写分为:1.spi_device就构建并注册在板文件中添加spi_board_info,并在板文件的init函数中调用spi_register_board_info(s3c_spi_devs,ARRAY_SIZE(s3c_spi_devs));spi_register_board_info(s3c_spi_devs,ARRA...

2012-12-03 22:15:00 214

转载 linux内核SPI总线驱动分析(一)

下面有两个大的模块:一个是SPI总线驱动的分析 (研究了具体实现的过程)另一个是SPI总线驱动的编写(不用研究具体的实现过程)SPI总线驱动分析1SPI概述 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口...

2012-12-03 22:13:00 370

转载 linux设备驱动中的并发控制

并发指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源的访问则很容易导致竞态linux内核中主要竞态1.多对称处理器的多个CPU 2.单CPU内进程与抢占它的进程 3.中断(硬中断、软中断、Tasklet、下半部)与进程之间访问共享内存资源的代码区称为“临界区”,临界区需要被以某种互斥机制加以保护,中断屏蔽、原子操作、自旋锁和信号量等是linux设备驱动中可采用的互斥途...

2012-07-11 22:28:00 52

转载 驱动初步

驱动分为:字符设备驱动,块设备驱动和网络设备驱动。字符设备驱动是操作字节流,不允许随机访问。块设备允许随机访问。字符设备比较基础,下面给出编写字符驱动的方法。#include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>MODULE_LICENSE ...

2012-07-11 22:10:00 58

转载 linux内核数据库sqlite3的移植和简单操作

基于嵌入式linux的数据库主要有SQLite, Firebird, Berkeley DB, eXtremeDB这几种数据库的特点:•Firebird是关系型数据库,功能强大,支持存储过程、SQL兼容等•SQLite关系型数据库,体积小,支持ACID事务•Berkeley DB中并没有数据库服务器的概念,它的程序库直接链接到应用程序中•eXtre...

2012-07-07 13:21:00 110

转载 网络超时检测

getsockoptsetsockopt网络超时检测:必要性:避免进程在没有数据时无限制的阻塞 当设置的时间到,进程从原操作返回继续运行3种方式可以:1.设置socket的属性SO_RCVTIMEO 接收超时SO_SNDTIMEO 发送超时struct timeval tv;tv.tv_sec = 5;tv.tv_usec = 0;setsockopt(sockfd, SOL_SOC...

2012-07-06 20:32:00 126

转载 广播

前面介绍的数据包发送方式只有一个接收方,称为单播如果同时发给局域网中的所有主机,称为广播只有用户数据报(使用UDP)套接字才能广播广播地址:以192.168.1.0网段为例,最大的主机地址 192.168.1.255代表该网段的广播地址发到该地址的数据包被所有的主机接收255.255.255.255在所有网段中都代表广播地址。广播的发送步骤:1.创建用户报套接字2.缺省创建的...

2012-07-06 20:31:00 89

转载 组播

单播方式只能发给一个接收方广播方式发给所有的主机。过度的广播会大量占用网络带宽,造成广播风暴,影响正常通信。组播(又称为多播)是一种折中的方式。只有加入某个多跛足的主机才能收到数据。多播方式既可以发给多个主机,又能避免像广播那样带来过多的负荷(每台主机要到传输层才能判断广播包是否要处理)网络地址:A类地址:第1个字节为网络地址,其他3个字节为主机地址第一个字节的最高位...

2012-07-06 20:31:00 103

转载 TCP、UDP服务器模型

在网络程序里面,通常都是一个服务器处理多个客户机,为了出个多个客户机的请求,服务器端的程序有不同的处理方式。目前最常用的服务器模型:循环服务器:循环服务器在同一时刻只能响应一个客户端的请求。并发服务器:并发服务器在同一时刻可以响应多个客户端的请求。循环服务器模型:TCPsocket(…);bind(…);listen();while(1)...

2012-07-06 20:30:00 112

转载 IO模型

linux下主要有四种模型阻塞 IO:最常用、简单、效率低read,recv,recvfromwrite,send,sendto,accept,connect非阻塞IO:可防止进程则阻塞在IO操作上,需要轮询当一个应用程序使用了非阻塞模式的套接字,它需要使用一个循环来不停的测试是否一个文件描述符有数据可读。浪费CPU资源。fcntl函数是设置套接字的标志int fcntl(int fd,...

2012-07-06 20:29:00 87

转载 linux网络编程

网络互联促成TCP/IP协议的产生,它包括 用来检测网络传输中差错的传输控制协议TCP,专门负责对不同网络进行互联的互联网协议IPTCP/IP协议成为Internet中的世界语。两类重要的体系结构: OSI与 TCP/IPOSI开放系统互联模型应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,它是个理想化的模型。TCP/IP一共有四层应用层 (Telnet、FT...

2012-07-06 20:28:00 76

转载 进程间通信 IPC对象

System V IPC :这个东西真的要首先理解,因为好多书或者资料就直接说IPC就是 共享内存、消息队列、信号灯集,其实IPC是一种机制,这种机制提供了进程间通信的通道,那么为什么加个System V呢,那是因为在System V系统的四个版本中提出的进程通信的IPC这种机制。所以叫做System V IPC。目前Linux也支持这三种机制:共享内存、消息队列、信号灯集linux...

2012-07-05 20:00:00 120

转载 传统的进程间通信方式 1.无名管道(pipe) 2.有名管道(fifo) 3.信号(signal)...

linux下进程间的通信方式:传统的进程间通信方式 1.无名管道(pipe) 2.有名管道(fifo) 3.信号(signal)System V IPC 对象 1.共享内存(share memory) 2.消息队列(message queue ) 3.信号灯 (semaphore)BSD套接字(socket)下面进行逐一介绍:无名管道:这里所说的主要只无名管道,它具有如下特点,只能用于具...

2012-07-05 19:56:00 120

转载 线程的同步和互斥

多线程共享一个进程的地址空间虽然线程间通信容易进行,但是多线程同时访问共享对象时需要引入同步和互斥机制。同步指的是多个任务按照约定的顺序相互配合完成一件事情,dijkstra基于信号量的概念提出了一种同步机制。由信号量赖决定线程是继续运行还是阻塞等待。信号量代表某一类资源,其值表示系统中该资源的数量信号量是一个受保护的变量,智能通过三种操作来访问:初始化 P操作(申请资源),V操作(...

2012-07-04 21:48:00 71

转载 线程的基本概念和操作

系统为每个用户进程创建一个task_struct 来描述该进程,该结构体包含了一个指针指向该进程的虚拟地址空间映射表。实际上task_struct和地址空间映射表一起用来表示一个进程。由于进程的地址空间是私有的,因此在进程间上下文切换时,系统开销比较大,为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,即线程在同一个进程中创建的线程共享该进程的地址空间,Linux里同样用...

2012-07-04 21:46:00 72

转载 基于fs_11c14开发板的项目实践

fs_11c14是华清远见的一款开发板,主芯片是LPC111C4,这个芯片一共有48个管脚,其中2个晶振管脚,4个电源引脚,42个通用输入输出管脚。芯片手册可以在网上下载。LPC1114内部包含有cortex-m0内核,cortex-m0内核自己也集成了一些外设,其中比较重要的是一个时钟SysTick,即系统定时器,它采用的是晶振时钟,所以比较精确。fs_11c14开发板集成了很...

2012-07-03 21:29:00 1146

转载 linux的进程学习

wait函数和waitpid函数,函数原型: pid_t wait(int *status )status是一个整型指针,指向的对象用来保护子进程退出时的状态。例如: pid = wait(&status)这status假设为 0x0400,说明 第一个字节保存的是中断信号的编号,倒数第二个字节是保存exit()中的数字。函数的返回值成功返回的是子进程的进程号,...

2012-06-28 22:52:00 70

转载 linux学习总结进程与线程——exec函数族

exec提供了一种在进程中启动另外一个程序的执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段。在执行完之后,原调用进程的内容除了进程号外,其他全部都被替换了。1.可执行文件查找方式exec族中的函数以p结尾的函数可以只给出文件名,系统会自动从环境变量“$PATH”所包含的路径中进行查找。即 结尾不是p的,必须要给出文件的路径,并...

2012-06-20 19:59:00 175

转载 linux学习总结进程与线程

进程的概念:进程是一个独立的可调度的任务。是一个程序一次执行的过程。程序是静态的,是保存在磁盘上的指令的有序集合,没有执行的概念。进程是动态的,他是程序执行的过程,包括创建、调度、消亡,是程序执行的各种资源的总和,是资源管理的最小单位。进程包括:正文段+用户数据段+系统数据段(进程控制块PCB)。进程的分类:1.交互进程:由shell控制运行的,可以在前台,也可以在后台运...

2012-06-19 21:43:00 88

转载 linux学习之IO操作,文件IO总结

文件IO不带缓存,每个read和write都调用内核中的相应系统调用。文件IO常用函数:open,close,read,write,lseek对于内核而言,所有打开文件都有文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,你诶和向进程返回一个文件描述符。当读、写一个文件时,用open返回的文件描述符标识该文件,将其作为参数传给read或write。1.o...

2012-06-18 21:41:00 179

转载 linux学习之IO操作,标准IO总结

IO文件操作时最常用的也最基本的内容。linux文件系统是由两层结构构建:第一层是虚拟文件系统(VFS),第二层是各种不同的具体文件系统。VFS是吧、把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分。它位于用户程序和具体的文件系统中间。它对用户程序提供了标准的文件系统的调用接口,对具体的文件系统,它通过一系列的对不同文件系统公用的函数指针来实际调用具体...

2012-06-18 20:52:00 187

转载 linux学习总结(最短路径dijkstra算法)

#include <stdio.h>#define N 6#define M 1<<10typedef struct {int pi[N];int end;}pathtype;int main(){ int array[N][N] ={ // v0 v1 v2...

2012-06-16 17:30:00 88

转载 linux学习总结(数据结构之图的遍历)

图的深度和广度优先算法#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <strings.h>#define N 5#define M 10typedef int datatype;typedef struct { dat...

2012-06-16 14:42:00 82

转载 linux学习总结(数据结构——树、二叉树以及遍历)

二叉树的存储:顺序存储浪费空间。二叉树链式存储结构:typedef int datatype;typedef struct node{  datatype data;struct node *lchild,*rchild;}bitree,*root;二叉树的遍历,由于二叉树的递归性质,遍历算法也是递归的。三种基本的遍历算法如下:先访问树根,再访问左子树...

2012-06-14 22:02:00 177

转载 栈和队列的综合运用——球钟趣味游戏代码(初学者)

队列:顺序存储的队列为了充分利用空间,可以进行循环利用,在笔记上看一下,不写了。队列先进先出,也是一种存储技术,利用队列来实现球钟。球钟描述:球钟是一个利用球的移动来记录时间的简单装置。它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器。若分钟指示器中有2个球,五分钟指示器中有6个球,小时指示器中有5个球,则时间为5:32。工作原理:每过一分钟,球钟就会从球队...

2012-06-14 20:57:00 222

转载 linux学习总结(数据结构——栈和队列)

学习的捷径:多写代码栈:栈是限制在一端进行插入操作和删除操作的线性表,额,又是线性表,那就是说又可以有两种存储方式:顺序栈,链式栈。允许进行操作的一端称为“栈顶”,另一端称为“栈底”。特点:先进先出。所谓的栈和队列,其实是一种技术,有时候需要特殊的存储方式,然后在必要的时候还原该元素,就会利用到栈或者队列,例如在ARM操作的一些裸机代码中,需要保持状态寄存器中的值,根据需要可以利...

2012-06-13 21:10:00 101

转载 linux学习总结(数据结构2-约瑟夫环)

循环链表,最后的尾指针指到头结点上,双向循环链表就是再加个pre指针。约瑟夫环的问题:设编号分别为:1,2,3,...n的n个人围坐在一圈。约定序号为k(1<=k<=n)的人从1开始计数,数m的那个人出列,他的下一位又开始从1开始计数,数到m的那个人又出列,以此类推,直到所有的人都出列。例如:设 n = 8,k= 3 , m = 4时,出列序列为:6 2 7 4...

2012-06-12 22:22:00 65

转载 linux学习总结(数据结构)

学习总结:linux内核用到很多数据结构的知识,虽然linux是C语言编写,但是里面众多内容是面向对象的思想。所以数据结构的知识很基础,很重要。数据结构指的是数据的逻辑结构和存储结构及其操作:数据的逻辑结构    线性结构 :1.线性表 2.栈 3.队列    非线性结构 :1.顺序存储 2.图形结构数据的存储结构    顺序存储...

2012-06-12 19:14:00 91

空空如也

空空如也

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

TA关注的人

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