- 博客(21)
- 资源 (7)
- 收藏
- 关注
转载 Linux framebuffer介绍
帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。framebuffer是LCD对应的一中HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由Framebuffer设备驱动来完成的。 帧缓冲设备对应的设备文件为/dev/fb*,如果系统有多个显
2013-06-16 21:01:48 814
转载 V4L2
V4L2(video 4 linux 2)V4L2有一段历史了。大约在1998的秋天,它的光芒第一次出现在Bill Dirks 的眼中。经过长足的发展,它于2002年11 月,发布2.5.46 时,融入了内核主干之中。然而直到今天,仍有一部分内核驱不支持新的API,这种新旧API 的转换工作仍在进行。同时,V4L2 API也在发展,并在2.6.18 版本中进行了一些重大的改变。支持V4L2的应
2013-06-10 17:05:24 1919
原创 TQ2440实验板OV9650测试程序的详解
我买的是TQ2440实验板,LCD是480*272。实验板给的测试程序是针对320x240的,下面给出详细注解,并且改成480*272显示。修改后的程序在板子上成功运行。程序中的注解只是我作为一个初学者的角度来理解的,有什么不对的地方还望指教。/* * TQ2440 camera test program * * preview : 480*272 overlay on 48
2013-06-10 16:24:06 5072 4
转载 linux-framebuffer设备相关参数
如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。在头文件中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO。前者返回与Framebuffer有关的固定的信息,比如图形硬件上实际的帧缓存空间的大小、能否硬件加速等信息。而后者返回的是与Fr
2013-06-10 15:29:01 1363
原创 munmap
munmap(解除内存映射) 相关函数 mmap 表头文件 #include #include 定义函数 int munmap(void *start,size_t length); 函数说明 munmap()用来取消参数start所指的映射内存起始地址,参数length则是欲取消的内存大小。当进程结束或利用
2013-06-10 15:20:00 1130
转载 memset
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include #include int main(void) {
2013-06-10 15:03:52 665
转载 mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共
2013-06-10 14:39:40 853
转载 fb_var_screeninfo解析
struct fb_var_screeninfo {__u32 xres; /* visible resolution横像素 */__u32 yres; //竖像素__u32 xres_virtual; /* virtual resolution */__u32 yres_virtual;__u32 xoffset; /* offset from virtual t
2013-06-10 14:10:52 16988
转载 嵌入式Linux下的LCD驱动程序设计与实现
随着嵌入式Linux的迅速发展,由于其没有昂贵的版权费,完全开放源代码,可裁减性与可移植性,因此是开发嵌入式产品的优秀操作系统平台。设备驱动程序是Linux内核的重要组成部分,运行在Linux内核底层,在内核源代码中占较大比例,驱动程序开发逐渐成为嵌入式软件开发中一项重要工作。应项目设计的需要完成了嵌入式Linux下的LCD驱动程序设计。 1 Linux下设备驱动程序 &nbs随着嵌入式
2013-06-10 13:56:25 1998 1
转载 FILE结构
用VC 控制台程序实现Word 的排版功能,输入文件名读取小于64k 的英文文本,然后对英文文本进行匀齐排版,最后结果为:一行70个字符,左右两边分别空4 个字符,长单词不能折断,每行必须对齐,单词中间插入空格。均匀插入。注意:1、不能用STL库,类似文件流fstream都不允许用 2、不能用sdk,mfc,windows api 3、用最基本的c/c++实
2013-06-09 23:18:24 756
转载 Linux系统调用
目录:1. Linux系统调用原理2. 系统调用的实现3. Linux系统调用分类及列表4.系统调用、用户编程接口(API)、系统命令和内核函数的关系5. Linux系统调用实例6. Linux自定义系统调用1.系统调用原理系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的
2013-06-09 21:26:19 750
转载 linux中的open
open 函数用于打开和创建文件。以下是 open 函数的简单描述 #include fcntl.h> int open(const char *pathname, int oflag, ... ); 返回值:成功则返回文件描述符,否则返回 -1对于 open 函数来说,第三个参数(...)仅当创建新文件时才使用,用于指定文件的访问权限位(a
2013-06-09 21:23:14 906
原创 perror函数
perror头文件#includestdio.h>#include注意不可以掉了#include这个头文件,perror是包含在这个文件里的perror表头文件完善版定义函数void perror(const char *s); perror ("open_port");函数说明perror( ) 用来将上一个函数发生错误的原因输出到
2013-06-09 21:15:12 13663 4
原创 argc与argv
argc,argv 用命令行编译程序时有用。主函数main中变量(int argc,char *argv[ ])的含义有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++main(int argc, char *argv[ ], char **env[ ])才是UNIX和Linux中的标准写法。argc: 整数,用来统计你运行程序时送给main函数的命令行参
2013-06-09 20:36:59 3378
转载 linux下的库文件
一、lib类型: 与windows下静态库(.lib)和动态库(.dll)一样,linux同样存在静态库(static library 文件后缀为.a)和共享库(shared library 文件后缀为.so),在/usr/lib目录下同时存在一个库的静态版本和动态版本。 "An archive (or static library) is simply a collection
2013-06-09 20:27:27 631
原创 linux头文件
验证程序断言 cpio归档值 字符类型 目录项 出错码 文件控制 浮点常数 信号 可变参数表 标准定义 标准I/O库 公用函数
2013-06-09 20:25:11 1523
转载 什么是ioctl。
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。
2013-06-08 13:14:02 808
转载 OV9650驱动程序跟踪
学习了裸机OV9650的P通道LCD直接显示程序,作为这点基础开始分析OV9650在linux设备驱动程序。昨天看了点这个驱动程序,让我很郁闷的是写这个程序的人是有毛病还是怎么回事,简简单单的IO口功能引脚的定义,整出了一个套一个的定义,看的我晕乎乎的,也可能是哥根本没有入门,看别人牛逼的程序就看迷糊了。鉴于上面这种情况,我在程序跟踪时只能带一下了。我们跟踪程序按照常规方法,跟着驱动的编写脉络
2013-06-07 20:59:59 1605
转载 Linux内核中的Kconfig、Makefile、.config
首先我们来学习什么Makefile,什么是Kconfig ,什么是.config Makefile:一个文本形式的文件,其中包含一些规则告诉make编译哪些文件以及怎样编译这些文件。 Kconfig:一个文本形式的文件,其中主要作用是在内核配置时候,作为配置选项。 .config:文件是在进行内核配置的时候,经过配置后生成的内核编译参考文
2013-06-06 15:54:07 558
转载 对ARM加载域和运行域的理解
对ARM加载域和运行域的理解一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)。对于嵌入式系统而言,程序映象都是存储在Flash存储器等一些非易失性器件中的,而在运行时,程序中的RW段必须重新装
2013-06-04 13:53:48 1615
转载 arm2440的启动流程
要分析arm2440的启动流程,先得了解arm2440的硬件配置,在arm2440这款cpu里面没有什么存储的芯片,除了以个4kb的SRAM(静态存储器可以运行程序,但是最重要的一点就是掉电就失掉所有的数据)注意这4kb是cpu自己的不是外设的的。好了现在讲述下启动的流程。(一下是从nand flash 启动)1、首先机器上电,从外部的nand flash 的0x0000-0x0100
2013-06-04 13:41:38 697
StartUML for Mac ,version2.5.0
2016-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人