您的位置 首页 主动

S3C2410和Linux的电影列表体系规划

摘要:随着数字信息技术和网络技术的高速发展,建立在其基础上的嵌入式系统也已经广泛应用于人们生活、工作的各个领域。本文介绍了基于S3C2410和嵌入式

摘要:跟着数字信息技能和网络技能的高速开展,树立在其根底上的嵌入式体系也现已广泛运用于人们日子、作业的各个范畴。本文介绍了依据S3C2410和嵌入式Linux操作体系的电影列表体系规划的完结进程。该体系依据嵌入式开发渠道建立,以Framebuffer完结对JPEG格局图片、文字的各种作用显现和外设鼠标的操控等。

导言

跟着新媒体的前进,网络媒体产品的日益开展,互联网将“推翻”电视的传统方位。新媒体供给了丰厚的媒体形状和多样化的收视方法,如点播、回看、下载等,使其有了交互功用和更长的生命周期。因而,交互式网络电视(IPTV)的出现是必定的成果。电影列表是IPTV中数字多媒体内容最为要害的节目来历,即电视节目导航体系,首要用来描绘供给给电视观众的一切节意图信息,是构成交互电视的重要技能之一。在IPTV事务中,用户可经过电影列表功用来了解电视电影节意图称号、播映时刻和内容梗概等相关信息,并完结对节意图快速检索和拜访,进行频道挑选或视频点播等操作。

1 体系环境的挑选与装备

1.1 体系软硬件渠道挑选

嵌入式体系是指以运用为中心,以计算机技能为根底,软硬件可裁剪,适用于运用体系对功用、可靠性、本钱、体积和功耗有严格要求的专用计算机体系。嵌入式体系由嵌入式微处理器、外围硬件设备、嵌入式操作体系以及用户运用程序4部分组成。本体系挑选x86处理器和

Linux操作体系作为体系开发环境,嵌入式ARM系列微处理器和嵌入式Linux操作体系作为体系运转渠道。

作为校园试验室敞开基金项目,本体系挑选学院试验室已有的JXARM9-2410教育试验体系进行规划与完结。JXARM9-2410试验箱选用三星公司的S3C2410微处理器,是一款为手持设备规划的低功耗、高集成度的依据ARM920T核的微处理器。它集成了外部存储器操控器、LCD操控器、ADC和触摸屏接口等,现在广泛运用于PDA、移动通讯、路由器、工业操控等范畴。常见的通用型嵌入式操作体系有Linux、VxWorks、Win  dows  CE等。Linux是以Unix为根底开展而成的操作体系,能够支撑ARM、MIPS、ALPHA、x86、PowerPC等多种系列的嵌入式微处理器。Linux操作体系最大的特性便是开源性和可裁剪性,除此之外,Linux操作体系还有内核高效安稳、杰出的可移植性、支撑多种文件体系等长处,有利于Linux在嵌入式设备中的运用。

1.2 编译器的挑选与装备

本体系选用C言语编写源码、编译生成在ARM渠道上的程序,因而需求在Linux环境下装置规范的C开发环境和穿插编译器arm-linux-gcc。运用指令sudo  apt-getinstall gcc g++ libgccl libg++make gdb装置C开发环境。装置穿插编译器进程如下:

①下载编译器源文件arm-linux-gcc-3.4.1.tar.bz2,运用tar指令进行解压此文件。

②将解压后构成的arm文件夹拷贝到usr/local/目录下,现在穿插编译程序集都在/usr/local/arm/3.4.1/bin目录下。

③修正环境变量,把穿插编译器的途径加入到PATH中,并运用指令source/root/.bashrc使新的环境变量收效。

2 ARM9嵌入式电影列表软件规划

在本体系中首要完结的使命是对所存在的电影信息的目录进行检索,经过解析生成电影节目菜单,将其可用信息首要以图片和文字的方法经过列表的方法显现出来,给用户一个直观的操作界面,以获取节意图有用信息。

2.1 Framebuffer初始化

Framebuffer(帧缓冲)是Linux内核的一种图形设备驱动接口,供给了LCD操控器的笼统性描绘。它将LCD操控器上的显存笼统成一种字符设备,运用程序经过界说好的接口能够拜访LCD操控器的显存,直接对显现缓冲区进行读/写操作。用户只需求直接向Framebuffer显现缓冲区写入数据就能够更新显现屏的输出。Framebuffer的设备文件一般是/dev/fb0、/dev/fb1等,其运用方法如下:

2.2 图片显现

本体系运用Libjpeg库在Linux下显现图片。Libjpeg是一个被广泛运用的jpeg紧缩/解紧缩函数库,它能够读写JPEG格局的图画文件,一般这类文件是以.jpg或许.jpeg为后缀名的。经过Libjpeg库,运用程序能够每次从jpeg紧缩图画中读取一个或多个扫描线,而比如色彩空间转化、降采样/增采样、色彩量化等由Libjpeg完结。关于Libjpeg而言,图画数据是一个二维的像素矩阵。关于五颜六色图画,每个像素一般用三个重量标明,即R、G、B三个重量,每个重量用一个字节标明,因而每个重量的取值规模为0~255;关于灰度图画,每个像素一般用一个重量标明,一个重量相同由一个字节标明,取值规模为0~255。因而,本体系中只需将体系中需求显现的JPEG图片进行解码为bmp像素点,再经过Framebuffer设备写入运用程序空间就能够完结图片的显现。经过Libjpeg对JPEG图片进行解码的进程如下:

调用jpeg_start_decompress()函数之后需求为解压后的扫描线上的一切像素点分配存储空间,这个空间的巨细由图画输出的宽度、高度和每个像素的字节数决议。JPEG解紧缩目标cinfo中output_width和output_height别离标明图画输出的宽度和高度,output_components标明字节数。

对扫描线的读取是依照从上到下的次序进行的,即图画最上方的扫描线最早被jpeg_read_scanlines()读入存储空间中,紧接着是第二个扫描线,最终是图画底边的扫描线被读入存储空间中。

2.3 文字显现

在Linux下显现文字运用FreeType库。FreeType库是选用面向目标的思维高度模块化的程序库,是一个开源的、高质量可移植的字体引擎。它供给了一致的接口来拜访多种字体格局文件,包含TrueType、OpenType、Type1、CID、CFF、Windows  FON/FNT、X11  PCF等。本体系选用点阵的方法显现字体,即要先取得汉字的点阵标明方法,然后依据点阵中每一位是否为1来决议是否对屏幕上相应的像素赋值。FreeType库里保存字体特点的结构体FT_Bitmap,包含位图行、列、每行所占字节数等信息。对FreeType库的运用进程如下:

2.4 鼠标事情

现在最常见的鼠标有PS/2鼠标和USB鼠标。但就运用层去看这两种鼠标其实没有太大的差异,PS/2鼠标有4种作业形式:复位形式、流形式、遥控形式、检测形式。流形式是默许的作业形式,在流形式下鼠标的任何动作都会报告给主机。

(1)鼠标的解析与制造

鼠标的设备文件为/dev/input/mice。当鼠标有动作(移动、按键、滚轴)的时分能够经过cat/dev/input/mice指令,取得动作数据并显现在屏幕上。但多数是乱码,原因是读到的鼠标动作数据,纷歧定是0~127的可见字符。

完结鼠标解析的首要代码如下:

经过上述对鼠标协议数据的解析,获取鼠标的按键事情和x、y方向的相对增量,只需声明一组变量,用来累加dx、dy即可获取鼠标在屏幕的肯定坐标。

鼠标的制造首要需求界说一个鼠标的标志。在屏幕上制造鼠标标志前,先保存屏幕相应方位(鼠标标志巨细)的原有图画,然后再制造鼠标的标志。当鼠标移动到一个新方位时,在本来方位就能够依据保存的原有图画康复,而在新的方位持续重复保存、制造即可。

(2)鼠标的按键事情操控

以按钮A事情为例,其首要完结代码如下:

经过解析的鼠标信息。判别D0,即左键的按键信息,当为1时,标明左键按下,这时能够经过鼠标是否按下的状况,调用相应的功用。

3 体系完结

本体系主界面包含体系时刻的显现、电影海报摆放、电影名、翻页和完毕按钮,如图1所示。点击翻页按钮,能够进入下一页电影节目。点击电影海报图片进入该影片的介绍栏,显现该电影的具体介绍,如图2所示。点击完毕按钮,程序进入退出界面,3  s今后程序完毕。

结语

本文首要介绍了在Linux操作体系下选用JXARM9-2410教育试验箱规划完结的电影列表产品。本体系完结了图片和文字的显现、鼠标按键事情等功用,现已完结了电影列表的基本功用。按钮事情的完结为体系供给了交互功用,为后边IPTV的进一步制造奠定了根底。关于本体系后续研讨规划,仍有能够进一步扩展和改善的当地,例如能够在本体系上扩展USB功用、网络通讯功用和触摸屏功用等,以进一步完善上层操作界面的规划。作为校园试验室敞开基金项目,本体系的完结与完结也给学院供给了更多的专业教育材料,有利于鼓励本专业学生的学习积极性,进步教育质量和水平。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/135713.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部