linux项目文档.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux项目文档

一:功能 多进程控制 MP3音乐播放 JPEG图片FRAMEBUFFER显示 出 二:特点 1.音质好,可以循环,随时可以结束 2.Frambuffer 显示是帧缓存显示模式,以内存作为显存,能在不加载显示驱动的情况下提高分辨率;节省硬件资源, 三:运行环境 软件:2.6.18-164.e15等版本的linux内核 硬件:pc机,ARM,单片机等,需要内存:32MHZ—64MHZ,X86架构RISC架构Intel处理器架构 五:模块分析 1图片显示部分 framebuffer.c: 用open函数,打开framebuffer设备,如果返回值是-1,则打开失败。 用ioctl函数取得framebuffer设备的文件描述符,如果返回-1,则打开失败,否则取得当前屏幕的宽,高和色深,并放在结构体fbinfo中 调用mmap函数讲文件映射到内存中, 图片转场部分 fx.c: 定义fx函数,将屏幕的宽,高和位深存放在变量width,height和bytes_pixel 将图片从上到下进行逐行显示。 2.Jpeg显示 Jpeg—解压—rgb24—转换—rgb565—显示到framebuffer上 解压jpg编码库:jpeg编解码库源代码:jpegsrc.v6b.tar.gz 其中的example.c既是编解码示例程序在此次的项目中更名为jpegdecode.c 阅读read_JPEG_file函数(解码函数的示例) void put_scanline_framebuffer(unsigned char *buffer, unsigned long nSample, FbInfo *fbInfo, unsigned long line) 将图片解码数据写入到framebuffer上 定义: 每解码一行图像调用一次 参数:1.样本存储地址;2.样本数量;(3.framebuffer相关参数;4.图片行号) 在其中我们调用了 put_scanline_framebuffer(buffer[0], row_stride, fbInfo, cinfo.output_scanline);//调用函数的将一行图像显示到framebuffer上。 其函数如下 void put_scanline_framebuffer(unsigned char *buffer, unsigned long nSample, FbInfo *fbInfo, unsigned long line)//此函数的功能是将一行图像显示到framebuffer上 { unsigned long n = 0; if(line = fbInfo-height) return;//如果图片行数大于framebuffer显示的高度将不显示 while(n nSample / 3 n fbInfo-width)//判断是否符合条件n小于framebuffer显示的宽度,并且小于图片的像素点数 { fbInfo-fbp[line * fbInfo-width + n] = rgb24To565(buffer + n * 3);//把图像的像素转换成rgb565并赋值到fbInfo-fbp即framebuffer显示的地址 n++; } } Fx void fx(FbInfo *fbInfo) { static int n; width = fbInfo-width; height = fbInfo-height; bytes_pixel = fbInfo-bits / 8; pf[n % (sizeof(pf) / sizeof(pf[0]))](fbInfo-fbp, fbInfo-buffer); n++; } 六:附录: kill函数的用法, 原型:int kill(pid_t,int signum); 功能:为pid所指定的进程发送一个signum信号 返回值:失败返回-1,否则为0 signal函数的用法, 头文件:signal.h 原型:sighandler_signal(int signum,sighandler_t hadler); 参数:sihnum是信号值,handler信号处理函数的入口地址 返回值:原来与signum信号值事进行关联,当进程接收到sinum信号时,立即执行handler指定的函数 数据类型:typedef void(*sighandler_t)(int) 函数指针,用于存储函数的入口地址 fork函数使用 头文件:sys/types.h unistd.h 原型:pid_t fork(void); 功能:创建一个子进程 返回值:失败返回-1,成功是在父进程中返回子进程ID,在子进程中返回0 4,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档