- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,
您可能关注的文档
最近下载
- 审稿意见回复信英文模板和语料总结.pdf
- GB50461-2008:石油化工静设备安装工程施工质量验收规范.pdf VIP
- Bose博士SoundTouch 300 Soundbar 扬声器说明书.pdf
- 剧本杀完整剧本 罪恶(4人封闭).docx
- 新版pep小学英语五年级上册unit2alet'stalk课件.ppt
- 1.2.1 学习使用显微镜课件2024-2025学年度七年级上册人教版生物学.pptx VIP
- (完整版)加油站基本情况调查分析报告.doc
- 2024年轮胎行业分析报告:万亿市场群雄逐鹿,步入2.0时代消费属性凸显.pdf
- 阅读考级练习之《无字书图书馆》测试题【附答案】.docx
- 主题3:友情类20篇(解析版)-备战2022年新高考英语读后续写主题分类专项汇编.docx
文档评论(0)