




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向行业手持设备的嵌入式Linux 软件平台项目嵌入式 Linux 软件平台系统设计说明书编写者:CY方案书版本说明批准人日期版本号发布说明作者签字岗位方案书目录1引言. .11.1编写目的 .11.2背景 .11.3基线 .11.4范围 .11.5定义 .11.6参考资料 .12总体设计 .12.1概述 .12.2设计思想 .32.3基本处理流程 .52.4产品的系统体系结构 .82.5功能需求与系统单元的关系 .92.6人工处理过程 .113系统主要数据结构说明 .113.1数据结构 .113.2数据结构与系统单元的关系 .164接口设计 .164.1外部接口 .164.2内部接口 .17
2、5运行设计 .175.1系统初始化 .175.2运行控制 .175.3运行结束 .176系统出错处理设计 .176.1出错信息 .176.2补救措施 .177系统维护设计 .187.1检测点的设计 .18方案书7.2 检测专用模块的设计.188尚待解决的问题18附录 A:嵌入式中文字库关键技术和算法19GLYPH的矢量表示19计算转换系数SCALE20附录 B:嵌入式中文字库数据流程图21附录 C :全屏手写系统结构图22附录 D:多媒体软件移植系统流程图23方案书1 引言1.1编写目的本文档是为保证“面向行业手持设备的嵌入式linux 软件平台 ”项目在整个开发过程中的完整性、可追溯性,并保
3、证软件产品与面向行业手持设备的嵌入式Linux 软件平台项目系统需求规格说明书保持一致性而编写的。预期读者为项目相关开发人员、项目管理人员和SCM、 SQA人员、客户代表。1.2背景项目名称:面向行业手持设备的嵌入式Linux 软件平台用户:无线手持通信设备厂商1.3基线面向行业手持设备的嵌入式Linux 软件平台项目系统需求规格说明书1.4范围本软件结构设计说明书所涉及的内容范围包括总体的结构设计,系统单元的结构设计,系统主要数据结构说明,接口设计,运行设计,系统出错处理设计和维护设计。1.5定义无。1.6参考资料1) 面向行业手持设备的嵌入式 Linux 软件平台项目系统需求规格说明书面向
4、行业手持设备的嵌入式 Linux 开发平台项目总体开发计划2) 本文件中引用的其他文献、资料以及软件开发标准。2 总体设计2.1概述功能描述本产品要实现的功能包括:嵌入式 Linux 系统目标系统的软件开发环境对运行平台提供的各种接口,提供稳定的驱动程序基于 QT/embedded 的图形用户界面中文图形界面中英文手写输入、键盘输入方案书多媒体播放器个人助理套件英汉词典浏览器面向交通、物流行业的应用编程接口本参考平台包括开发包和运行包。要求参考平台具备高度的可配置性,方便开发人员根据其需要在参考平台的基础上进行添加、裁减和上层开发,快速形成产品。运行环境开发平台的运行环境:推荐采用PIII65
5、0 以上 CPU,内存大于128M ,硬盘空间大于4G;推荐完全安装普华 Linux 3.0 ,并安装开发包和目标系统源代码。运行包硬件环境:硬件采用PXA250开发板,规格如下:socketed processor for easy upgrades64 MBytes SDRAM32 MBytes Boot ROM32 MBytes Flash Memory1 MByte SRAMone Intel? SA- 1111? Companion Chip, which provides: one PCMCIA slot one Compact Flash slot one USB Host po
6、rt PS/2 keyboard and mouse supportStandard Microsystems LAN91C96* Ethernet controllertouch-screen panel controllers: Philips UCB 1400* Burr Brown ADS7846*audio CODECs with MIC, LINE IN, and HEADPHONE connectors: Philips UCB 1400 Cirrus CS4201*Sharp LM8V31 LCD panel, with support for other LCD types方
7、案书one USB Client portpulse width modulation controlone infrared (IrDA) transceiverFull Function and Bluetooth UART serial portsone slot for one Secure Digital memory card or MultiMediaCardI2C bus communicationslogic analyzer connectionsone expansion-card slot for custom developmentisolatable process
8、or core voltage for precise power measurementseight 7-segment LED digits, eight discrete LEDs, eight discrete switches, and two hexadecimal-encoding switches for use by application software2.2设计思想系统构思本项目向用户提供参考平台包含开发包和运行包,在系统设计中因此也分为开发平台和运行平台,其中开发平台系统构思如图1 所示 , 运行平台构思如图2 所示。PXA250 的Linux 核 心Bash源代码Q
9、pe 源代码和 glibc 库目标系统源码包目标系目 标 系目 标 系目 标 系目 标 系PXA 开发包统交叉统 裁 减统 打 包统 下 载统 远 程编译工工具工具工具调 试 工标准 Linux 系统图 1 开发平台系统构思PC 环境方案书中文终文件管邮件客嵌入式嵌入式端理器户端文本浏多媒体套览器件嵌入式 GUI嵌入式矢量字库全屏手写识别输入法基本库和扩展库支持( C 库、网络、多媒体( IPP)、图形)Linux 核心串口驱动USB 驱动音频 I/O背光灯驱LCD 驱网卡驱触摸屏、键驱动动动动盘、鼠标驱动图 2运行平台系统构思关键技术与算法关键技术:嵌入式 Linux 操作系统:主要是基于I
10、ntePXA 250硬件平台进行嵌入式Linux 系统优化,保证系统具备良好的可移植性和可扩展性,此过程主要涉及的技术包括:系统可剪裁可配置技术;支持无硬盘及闪存工作方式技术;JFFS2 文件系统技术;支持随时直接关机;支持运行时核心模块动态加载机制;嵌入式图形用户界面:支持基于Framebuffer 的 GUI 系统;支持 GIF 、JPEG、 XPM 、 PNG 、BMP 等常用图像格式;方案书提供易用的、可定制的、功能完善的人机交互界面;提供已预制的应用模块接口,提供对应用程序添加的扩展机制等;图形界面支持完整的中文机制及环境;为提高用户的开发效率,提供丰富的控件集和开发工具;面向行业类
11、的应用编程接口库:提供具体行业的API 函数的实现机制;实现不同系统平台间的通讯;使开发出的 API 函数能够让开发人员较方便地实现上层应用程序与底层硬件之间的通讯;嵌入式 JAVA :嵌入式 Java 虚拟机;提供 Java 处理程序;支持 Java applet 和 Java application;提供 Java 工具;提供 Java 运行环境;嵌入式中文信息处理子系统:全面的中文显示支持;提供多种中文输入法;嵌入式中文字体;支持嵌入式手写输入;本项目目的是提供系统平台,所以具体算法主要由合作厂商提供相关接口,本项目设计的主要算法有:基于 IPP 的多媒体编解码算法矢量字体的轮廓描绘、填
12、充、平滑算法(算法分析见附录A)高效、准确的手写笔迹匹配识别算法关键数据结构无2.3基本处理流程( 1) 系统流程图开发平台系统流程如图 3 所示 :方案书根据开发需要对参考平台进行配置根据配置对源代码进行编译生成动态库或静态库链接库文件,形成可执行代码判断是否需N要裁减Y根据需要进行裁减N判断是否需要打包Y按配置要求对相关文件进行打包写入目标系统图 3 开发平台系统流程图方案书运行平台系统流程图如图4所示.开发板加电初始化设备启动 init 进程挂装文件系统加载 busybox加载图形界面(QPE)上层应用 (记事本, 媒体播放,关机等)退出运行环境关机图 4运行平台系统流程图方案书( 2)
13、数据流程图本项目提供系统平台,因此项目没有核心数据流程,相关模块的数据流程见附录 B。2.4产品的系统体系结构系统单元如下例表所示 :单元名称标识符功能开发平台包kfptb交叉编译源代码, 并打包下载到 PXA 开发板设备 /接口驱动程序qdcx访问设备 / 接口的 IO 端口 / 寄存器 / 配置空间, 进行设备检测和参数设定,并初始化设备。 处理中断请求,完成数据读写操作检测错误和处理异常中软嵌入式 Linux 操作系统czxt嵌入式 Linux 核心、基本库和扩展库( C 库、网络、多媒体、图形库)嵌入式中文 GUIzwguiQPE 图形环境(窗口管理、中文字库、中文手写)上层应用scy
14、yQPE 下的上层应用程序(包含个人助理套件、 多媒体应用等)系统层次结构运行平台系统层次结构如图5 所示:方案书上层应用(关键是多媒体应用)嵌入式中文 GUI图 5运行平台系统层次结构图系统单元设计开发平台:将现有的交叉编译工具、调试器、软件包下载工具等整合在一起,并增加裁减、打包工具。设备 /接口驱动程序:在现有的相关驱动程序源代码基础上,对PS/2,USB,以太网口, LCD 以及音频口进行测试,并实现 x86 平台到 PXA 平台的移植。中软嵌入式Linux 操作系统:使用开发平台提供的交叉编译工具编译基于PXA 平台的嵌入式Linux 核心和基本库以及启动程序,并使用开发平台的相关工
15、具下载到开发板上。嵌入式中文GUI :开放源码的图形环境QPE 的修改和汉化 (另包括全屏中文手写单元和嵌入式中文字库单元),然后交叉编译修改后的QPE 源码并下载到开发板上(全屏中文手写流程图见附录 C )上层应用:修改一些已有源码的应用并交叉编译下载到开发板上,关键是实现一个基于Intel IPP 的多媒体播放器,主要方法是在分析QPE 多媒体软件底层接口的基础上,移植替换底层解码库。(多媒体解码流程图见 附录 D)2.5功能需求与系统单元的关系开发平台:方案书可以在 PC 机上交叉编译PXA 的应用程序可对生成的PXA 目标代码进行裁减可对生成的系统进行打包集成可以将软件包下载到PXA
16、开发板,并写入Flash提供 minicom ,可通过串口进行调试可在 PXA 开发板上通过gdb/gdbserver 调试二进制代码设备 /接口驱动程序:能使用 PS2 接口的键盘和鼠标能通过 USB 口使用外接设备能使用 10M以太网接口能使用 LCD 和触摸屏能使用外接的音频输入输出设备中软嵌入式Linux 操作系统:在开发板上Linux 核心正常启动在开发板上能使用Linux 基本指令嵌入式中文GUI :完善稳定的QPE 图形界面全面汉化处理手写识别率高中文字体美观、清晰字符显示能够无级缩放上层应用:嵌入式中文套件邮件客户端多媒体应用软件(能正常播放MPEG4 和 MP3 文件,多媒体
17、文件播放流畅,播放速率至少达到25 帧 /秒)方案书2.6人工处理过程开发平台:根据目标系统需求,修改配置文件或Makefile软件的配置、编译过程,包括configure 、 make、 make install 等软件裁剪、打包和下载过程。运行平台:无。3 系统主要数据结构说明3.1数据结构本项目主要是提供一个系统平台,因此没有全局的数据结构,系统单元的数据结构如下:a) 嵌入式中文字库主要数据结构FT_Outline_typedef structFT_Outline_shortn_contours;/* number of contours in glyph*/shortn_points
18、;/* number of points in the glyph*/FT_Vector*points;/* the outline's points*/char*tags;/* the points flags*/short*contours;/* the contour end points*/intflags;/* outline masks*/ FT_Outline;n_contours:表示在一个glyph outline 中所有的字形轮廓的数目n_points:表示在一个glyph outline 的矢量表示中,所有坐标点的数目。Points:一个指向有n_points
19、39; 个 FT_Vector 元素的数组的指针,给出了outline's 点坐标Tags:一个指向有n_points' 个 char 元素的数组的指针,给出每个outline point 的类型。Contours: 一个 n_contours' 个短整型元素的数组,给出了每个contour 的结束点的索引。Flags:一系列bit flags 用来表示outline 的特征。b)全屏中文手写主要数据结构class QMatcher / 识别库标准接口类方案书public:QMatcher (); / 初始化virtual QMatcher();/ 析构virtual
20、void setType();/ 设置识别类型virtual void setSpeed();/ 设置识别速度virtual unsigned long getType();/ 获得识别类型virtual short getSpeed();/ 获得识别速度virtual intRecognize();/ 识别处理virtual struct rangelist *TypeRange();/ 获得识别类型表列;struct Q_PACKED QIMPenGlyphLink/每个点的坐标结构signed char dx;signed char dy;class QIMPenStroke/ 记录每一
21、个笔画中的各个点public:QIMPenStroke();/ 初始化void clear();/ 清空bool isEmpty();/ 判断是否为空int length();/ 返回点的个数const QArray<QIMPenGlyphLink> &chain();/返回各个点QPoint startingPoint();/ 返回开始点void beginInput( QPoint p );/ 开始记录bool addPoint( QPoint p );/ 把点加入links 数组void endInput();/ 某个笔画结束protected:QArray<Q
22、IMPenGlyphLink> links;/某个笔画的各个点的坐标;方案书typedef QList<QIMPenStroke> QIMPenStrokeList;/一个字的所有笔画c)多媒体软件移植主要数据结构(1)mp3 解码所用到的结构typedef struct /*/1. ippsUnpackFrameHeader_MP3*/IppMP3FrameHeader FrameHdr;/* MP3帧头信息 */Ipp8u HdrBufHDR_BUF_SIZE;/* MP3 帧头缓冲区 */Ipp8u *pHdrBuf;/* MP3 帧头缓冲区指针*/*2. ippsUn
23、packSideInfo_MP3*/IppMP3SideInfo SideInfoMAX_GRANMAX_CHAN;/* MP3 side 信息表*/*3. ippsUnpackScaleFactors_MP3_1u8s*/Ipp8s ScaleFactorMAX_CHAN*IPP_MP3_SF_BUF_LEN;/* mp3 scalefactors信息表 */int ScfsiMAX_CHAN*SCF_BANDS;/* Scalefactor信息选择表*/*4. ippsHuffmanDecode_MP3_1u32s*/Ipp32s IsXrMAX_CHAN*IPP_MP3_GRANULE_
24、LEN;/* Huffman解码缓冲区和IMDCT流缓冲区*/int NonZeroBoundMAX_CHAN;/* Non-zero bounds on HuffmanIMDCT coefficient set for each channel */*5. ippsReQuantize_MP3_32s_I*/方案书Ipp32s RequantBufIPP_MP3_GRANULE_LEN;/* Work space bufferrequired by requantization primitive */*6. ippsMDCTInv_MP3_32s*/Ipp32s XsMAX_CHAN*IP
25、P_MP3_GRANULE_LEN;/* IMDCT输出 /PQMF输入缓冲区*/Ipp32s OverlapAddBufMAX_CHAN*IPP_MP3_GRANULE_LEN;/* Overlap-add bufferrequired by IMDCT primitive */int PreviousIMDCTMAX_CHAN;/* Number of IMDCTs computedon previous granule/frame */*7. ippsSynthPQMF_MP3_32s16s*/Ipp32s PQMF_V_BufMAX_CHAN*IPP_MP3_V_BUF_LEN;/*
26、"V" buffer - used byfast DCT-based algorithm for synthesis PQMF bank */int PQMF_V_IndxMAX_CHAN;/* Index used by the PQMF forinternal maintainence of the "V" buffer */*Main Data Decoding Buffer*/Ipp8u MainDataBufMAIN_DATA_BUF_SIZE;/*数据区解码缓冲区*/int MainDataEnd;/*数据区指针*/*Application
27、Interface Parameters*/int Channels;/*通道数量*/int pcmLen;/* pcm输出缓冲长度*/ MP3DecoderState;方案书(2) mpeg4 解码所用到的结构/*视频属性结构*/typedef enum IPP_VIDEO_LUMINANCE,/* 亮度*/IPP_VIDEO_CHROMINANCE,/* 色度*/IPP_VIDEO_ALPHA/* Alpha component */ IppVideoComponent;/* Macroblock Types */typedef enum IPP_VIDEO_INTER= 0, /* P
28、picture or P-VOP */IPP_VIDEO_INTER_Q= 1, /* P picture or P-VOP */IPP_VIDEO_INTER4V= 2, /* P picture or P-VOP */IPP_VIDEO_INTRA= 3, /* I and P picture, or I- and P-VOP */IPP_VIDEO_INTRA_Q= 4, /* I and P picture, or I- and P-VOP */IPP_VIDEO_INTER4V_Q= 5, /* P picture or P-VOP(H.263)*/IPP_VIDEO_DIRECT=
29、 6, /* B picture or B-VOP (MPEG-4 only) */IPP_VIDEO_INTERPOLATE= 7, /* B picture or B-VOP */IPP_VIDEO_BACKWARD= 8, /* B picture or B-VOP */IPP_VIDEO_FORWARD= 9/* B picture or B-VOP */ IppMacroblockType;/*矢量动作结构*/typedef struct _IppMotionVector Ipp16s dx;Ipp16s dy; IppMotionVector;/*透明状态结构*/enum 方案书I
30、PP_VIDEO_TRANSPARENT= 0,IPP_VIDEO_PARTIAL= 1,IPP_VIDEO_OPAQUE= 2;3.2数据结构与系统单元的关系嵌入式中文字库单元,在对矢量字库的处理中,数据结构FT_Outline_ 中描述了字形轮廓的矢量表示,按照设置的字体格式,对字形轮廓的矢量表示的进行转换,并以此生成位图,输出显示字符。全屏中文手写单元,在鼠标输入过程中,利用数据结构QIMPenStroke 记录每一个笔画中的各个点,利用 Qmatcher 识别引擎作为调用识别库标准接口,在手写识别程序和识别库之间进行数据交换,并产生候选字列表。多媒体软件移植单元,主要通过这些数据结构在
31、解码过程来描述媒体文件,并在最后通过数据结构返回上层软件。4 接口设计4.1外部接口用户接口开发平台:采用命令行方式与用户交互信息。运行平台:用户通过手写输入或者虚拟终端同开发板交互信息。其它外部接口开发平台:硬件接口:通过串口、并口、网口与开发板通讯。软件接口:通过minicom 、 ftp 、telnet 与运行环境交互信息。运行平台:嵌入式 GUI : TrollTech 公司。中英文手写输入:清华文通。嵌入式中文字库:长沙东文方案书4.2内部接口运行平台系统单元接口如6 所示:上层应用设备驱动QPE 中文图形环境全屏中文手写嵌入式中文字中软嵌入式 Linux 核心图 6运行平台系统单元
32、接口5 运行设计5.1系统初始化加电复位,核心引导,执行初始化脚本,建立基本运行环境,启动图形界面。5.2运行控制无5.3运行结束退出系统,关闭电源。6 系统出错处理设计6.1出错信息本项目可能出错的信息有:运行平台系统启动失败,某设备不支持等。(x86 平台图形界面和应用编程中出现的错误由开发人员根据实际情况修改调试,在此不做预测)6.2补救措施根据出错信息重新交叉编译Linux 核心源码,写入目标系统运行。方案书7 系统维护设计7.1检测点的设计无7.2检测专用模块的设计无8 尚待解决的问题无方案书附录 A:嵌入式中文字库关键技术和算法glyph 的矢量表示Glyph image 的矢量表
33、示被称为outline ,outline 是一系列封闭的路径称之为contours 组成,每个 contours划定了一个glyph 的外部和内部区域,它是由线段和贝塞尔曲线组成。Contours 是由一系列的points 来表示,通过control points 来定义曲线的弧是二次还是三次的贝塞尔曲线。因此,每一个point 都对应一个tag 标志,说明其是normal 还是 control point 。每一个 contour 对应下列四种情况:图一图二图三图四由三个数组来进行描述:points 数组包含了contours 所有的点, tags 数组包含了与每一个point 相对应的fl
34、ag , contours 数组包含了一个contour 结束点的索引。n_points 是 outline 所有的点数, n_contours 是 outline 包含的 contours 的数量。Tag 可以为以下的三种value :FT_Curve_Tag_On:表示其所对应的point在曲线上,两个连续的FT_Curve_Tag_On 的 point表示一个直线段。如图一所示。FT_Curve_Tag_Conic :表示其所对应的point不在曲线上,但是一个control point,在两个FT_Curve_Tag_On 的 point中间有一个FT_Curve_Tag_Conic 的 point表示了一段二次贝塞尔曲线,如方案书图二所示。FT_Curve_Tag_Cubic :也表示所对应的point是一个control point,在两个FT_Curve_Tag_On的 point中间有两个FT_Curve_Tag_ Cubic的 points表示了一段三次贝塞尔曲线,如图三所示。如果在两个FT_Curve_Tag_On 的 point中间有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理自考本科专业发展与试题及答案
- 行政管理的评价标准试题及答案
- 2025农业银行贷款合同范本
- 行政管理的社会超级结构研究试题及答案
- 2025合作伙伴(公司)合作协议合同范本
- 2025年管理心理学考试注意事项试题及答案
- 现代管理学中业务流程再造试题及答案
- 行政管理学学术研究试题及答案
- 2025婚礼策划公司员工合同样本
- 2025家庭雇佣家政服务员合同
- 第四课:印巴战争
- 电气设备-开篇绪论汇编
- 武汉绿地中心项目技术管理策划书(48页)
- 婚无远虑必有财忧法商思维营销之婚姻篇74张幻灯片
- 红外图像处理技术课件
- 小学一年级人民币学具图片最新整理直接打印
- 投掷:原地投掷垒球
- 港口码头常用安全警示标志
- 密闭式周围静脉输液技术PPT课件
- 电梯快车调试方法
- 主要材料损耗率表
评论
0/150
提交评论