(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf_第1页
(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf_第2页
(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf_第3页
(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf_第4页
(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机软件与理论专业论文)智能手机系统软件设计与研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 i 页 智能手机系统软件设计与研究智能手机系统软件设计与研究 摘要摘要 本论文结合上海科委的智能手机项目, 在以 hybus 的 pxa272 开发板和展 讯的 sm5100b 通讯模块为硬件开发平台的基础上对智能手机系统软件展开 研究, 提出了一种基于嵌入式 linux 的智能手机系统软件平台的设计与实现, 系统软件从软件架构上分为四层:最底层是操作系统层,主要实现对嵌入式 linux 的移植、裁剪等。第二层是系统服务层,处理手机通讯业务以及其他 服务等。第三层是中间层,包括图形用户接口、j2me 中间件、嵌入式浏览 器和嵌入式数据库。嵌入式 gui 实现人机接口交互;j2me 中间件支持 java 程序、游戏的下载与运行;嵌入式数据库用来保存各种信息,嵌入式数据库 管理系统统一管理各种数据。最上层是智能手机应用层,包括智能手机基本 应用及其他应用,实现手机的基本功能及其功能等。其中嵌入式数据库和系 统服务程序是作者的研究重点。 本课题智能手机操作系统选用嵌入式 linux, 嵌入式 linux 移植是个很复 杂的过程,要针对不同的手机硬件修改、增加相应的驱动程序。本系统以 hybus的pxa272开发板为硬件开发平台, 针对arm处理器平台所做的linux 移植和裁减。操作系统部分不能直接用于不同硬件的手机上,需要手机不同 硬件设备的板级支持包(bsp)的支持。智能手机的存储设备一般都使用 flash 存储设备,本文介绍了几种 linux 下的嵌入式文件系统,以及本系统选用的 jffs2 文件系统设计与实现。 智能手机图形用户接口,不同的设备对嵌入式 gui 有不同的选择,本文 介绍了可用于 linux 环境下的一些嵌入式 gui,根据当前需求选用了基于 qt/e 图形库的 qtopia pda 版本。 智能手机的快速发展,需要保存的信息也越来越多,需要嵌入式数据库 来统一管理各种数据,嵌入式数据库是以后包括智能手机在内的移动设备的 重点发展方向,也是作者研究的重点之一。本系统在 berkeley db 的基础上 设计开发出用于智能手机保存信息的功能强大的嵌入式数据库管理系统,这 部分代码是跨平台的,针对不同的处理器平台经过交叉编译即可用于各种手 机并提供服务,提供了访问数据库的 api 和库函数。 智能手机系统服务层处理跟手机通讯相关的业务,也是手机设计成败的 关键,系统服务进程的稳定性、实时性、可靠性直接关系着智能手机性能的 好坏。这部分也是作者的另一研究重点。本文针对展讯 sm5100b 通讯模块 设计开发了智能手机通讯客户端软件并详细叙说了系统服务程序的处理流 程。本文还介绍了智能手机的基本应用,比如接听、拨打电话,接收、发送 第 ii 页 信息等。并且创新性地提出了黑名单功能和短信息转移功能,系统服务程序 和嵌入式数据库相结合,用户可以随时设置其功能。 本文设计实现了一个基于嵌入式 linux 的智能手机系统软件平台,为开 发更多的应用程序提供了一个良好的软件平台,linux 下的各种应用程序都 可以移植到本智能手机系统平台上。 关键字关键字:智能手机、嵌入式 linux,系统服务、嵌入式数据库 第 iii 页 design and research of system software based on smart phone abstract this paper studies the smart phone system software and presents the design and realization of the smart phone system software based on embedded linux. smart phone is based on the hardware of hybuss pxa272 development board and spreadtrums sm5100b communication model. this system software is divided into four layers with the operating system as the bottom layer, which realizes the transplantation of embedded linux. the second layer is of the system service which deals with the database service as well as all the business related with cellophanes. in the third layer, the middle layer, the embedded gui realizes the human-computer interface and the j2me middleware supports the download and running of java programs and games. the embedded database is used to store all kinds of information and the management system of embedded database manages all the data. the top layer is the application layer of smart phones where the basic functions and other applications of cellophanes are realized. the embedded database and the system service program is the main focus of the authors research. this smart phone operating system adopts the embedded system linux. the linux implantation is a complex process in which we should modify hardware and increase relevant drives according to different cellophanes hardware. based on the hybus pxa272, this system aims at the linux transplantation with arm processor. the operating system will need the support of hardware equipment bsp to be used on cellophanes. smart phones often use the flash memory. this paper introduces several embedded file systems and the design and realization of the jffs2 file system. this paper introduces some embedded gui under linux such as the qtopia pda based on qt/e as different equipments need different gui. with the rapid development of smart phones, there are more messages to be stored and there is a demand for embedded database to manage all the data. the embedded database is the developing trend of the mobile equipments including smart phone and also the research focus of the author. this system has designed a powerful embedded database management system for the information storage of smart phones 第 iv 页 on the basis of berkeley db. it can be used to various cellophanes through processors and provide service. the system service of smart phones deals with related business of cellophanes and is the key factor for a successful design. the stability, efficiency and reliability of the system service directly related with the performance of cellophanes. this is another focus of the author. the paper studies the customer end software of smart phone communication and its processing of the sm5100b. it also introduces the basic application of smart phones such as pick up/make the phone call; receive/send messages, etc. this system designs a smart phone system software interface based on embedded linux and all the application programs under linux can be implanted to this system interface. key words: smart phone, system service, embedded database, embedded linux 上海交通大学上海交通大学 学位论文原创性声明学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:周绪宏 日期:2007 年 1 月 15 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。 本人授权上海交通大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密保密,在 年解密后适用本授权书。 本学位论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名:周绪宏 指导教师签名:陈英 日期:2007 年 1 月 15 日 日期:2007 年 1 月 15 日 上海交通大学硕士学位论文 第一章 绪论 第 1 页 第一章第一章 绪论绪论 1.1 课题研究背景课题研究背景 如今手机已经成为人们生活中不可缺少的用品,手机的用途也从简单的通话 功能逐步向多用途、多功能、智能化方向发展。与传统手机相比,智能手机最大 的特点是其强大的多媒体视听功能和无线互联通信功能以及其他功能。 从外观尺 寸看,智能手机与我们现在的传统手机相差不大,但在整体功能上却实现了质的 飞跃。这样一部手机不仅能通话、发送信息,而且能在手机上观看电视、电影、 mtv,欣赏 mp3 和各种在线音乐,玩各种新颖丰富的在线游戏,用 msn 和 qq 进行 在线聊天。随着 3g、4g 时代的到来,手机的功能将变的更为强劲,其正加速向 智能化的发展。比如以后的手机可以取钱,可在商场刷卡消费,可用于交通刷卡 (地铁、公交、出租车等)。 手机的芯片供应商已经开发出了功能强大的芯片,为手机向高端智能方向发 展打好了基础。众多的 ic 设计企业争相设计开发出更强功能的用于智能手机的 视频、音频芯片以及支持其他各种功能的芯片。同时移动通信与 internet 的融 合是又一大趋势,新应用的出现必将对手机的技术含量提出更高的要求。无线 internet 业务要求手机结合各种实时信号处理技术,提供更为丰富的服务:如 流媒体播放、与位置相关的服务、语音识别、移动电子商务和安全技术等。智能 手机承载着未来的移动增值业务,中国移动已经和诸多的新闻、娱乐、游戏等内 容提供商携手搭建一个专门面向智能手机的内容服务平台,以促进 gprs 高端数 据通信增值业务的发展。中国联通也与微软、高通等国际巨头达成协议,对基于 智能手机的 cdma 数据业务做了积极的部署。 智能手机将会得到广大用户、营运商以及厂商的更大关注。据 idc(互联网数 据中心)最新预计,随着移动数据增值业务的发展,全球高端智能手机将以每年 100以上的高速增长, 在 2006 年左右攀升至 2000 万部, 在 2008 年将达到 40000 万部。而国内智能手机市场的发展则更为迅猛,平均年增长率为 220。随着时 间的逐步推移,更多厂家更多型号的加入,智能手机的功能越来越多,竞争也将 越来越激烈。 智能手机上述的这些发展趋势则要求智能手机有一个稳定的系统软件平台。 智能手机的系统软件设计是智能手机系统实现的关键难点, 设计的优劣直接关系 到系统的稳定性、可移植性、可扩展性。这其中的核心技术包括智能手机操作系 统、中间件、嵌入式数据库、手机 gsm/gprs 及消息客户端软件等。智能手机的 各种应用软件也是今后各智能手机厂商竞争的关键点,这需要智能手机有良好、 稳定的系统软件平台的支持。 上海交通大学硕士学位论文 第一章 绪论 第 2 页 当前智能手机的系统软件平台的操作系统主要有 symbian、win ce 和 linux。智能手机的操作系统也是各手机厂商竞争的关键。 (1) symbian symbian1也被称作 epoc 系统, 是由 psion software 公司推出的操作系统, 而且推出的时间也比较早,现在一般的移动计算设备都采用该操作系统。最早的 epoc 操作系统是 16 位的, 随着技术的不断成熟, 现在的 epoc 可以支持 32 位了, 并且可以支持多任务同时操作。同时,symbian 不仅是一个操作系统的名称,而 且还是一个公司,一个阵营,一个手机垄断联盟的代名词。 symbian 公司成立 于 1987 年,是摩托罗拉、西门子、诺基亚、爱立信等几家大型移动通讯设备商 共同出资组建的一个合资公司,专门研发手机操作系统。目前使用 symbian 操作 系统的手机在全球手机出货量中占到了 70%,而诺基亚、摩托罗拉、索尼爱立信 合资公司、西门子既是 symbian 公司的客户,又是该公司的股东,这四大手机巨 头采用的都是 symbian 开发的手机操作系统。symbian 操作系统的授权客户占全 球市场份额的 85%以上,已经形成了事实上的垄断。 (2) windows ce2 windows ce 和 microsoft pocket pc 都是微软针对 pda 产品和智能手机开发 的操作系统。同时,由于智能手机的 cpu 运算速度较低、内存容量较小等特性, 与 pda 并不完全相同,因此微软又特别针对智能手机设计出基于 windows ce 内 核的 windows powered smart phone 2002/2003 操作系统,可与目前微软 windows 的 os 兼容。装有该操作系统的手机非常轻巧、并拥有相当大的彩色屏幕,功能 除作为记事簿,还可连结资料库和播放音乐与影片。从多媒体发展的角度来看, 微软公司的操作系统具有很强的竞争能力,再加上微软在软件行业的影响力,其 升级与扩展的潜力是相当大的, 其代表机型为多普达 686、 696, 联想 e180、 560、 x618 等。windows ce 相关的现在都称为 windows mobile3,凭借微软的实力 将占据更多的市场份额。 (3) linux linux 是源代码开放的操作系统,目前已经有很多版本流行,而且其中一些 很适合作为内嵌系统。早在 2000 年,韩国公司 palmpalm 就推出了第一台采用 linux 的 tynux4手机。虽然目前使用 linux 的智能手机还不多,但凭借良好的 开放性和稳定性,linux 也越来越受到手机厂商的青睐。而且值得注意的是,这 类基于 linux 的手机操作系统从一开始就瞄准了 3g 手机市场。cbir 预测,基于 上海交通大学硕士学位论文 第一章 绪论 第 3 页 linux 的智能手机操作系统在将来可能会成为其他智能手机操作系统的强大对 手。代表机型为摩托罗拉 a760、a768,cect 的 e2800 以及三星的 cdma i519。 symbian 阵营是摩托罗拉、爱立信等手机巨头的游戏,中国本土手机制造商 很难介入。 采用微软的操作系统仍然受制颇多, 多普达等国内厂商则是典型案例, 由于 smartphone2003 的微软汉化版的推迟发行, 使得相关厂家贻误了市场良机。 国产高端智能手机面临最大的危险是, 一旦他们以高投入开启了高端智能手机的 市场,国外掌握核心技术的手机厂商肯定会加入(摩托罗拉近期又推出了基于 intel pxa255、262 的 a760 和 a768) 。linux 凭借其自由、免费、开放源代码的 优势在手机操作系统市场中异军突起,其特点主要有:内核高效稳定、公开源代 码、可移植性、可裁减、支持多任务等。所以 linux 对国内手机企业是一个很好 的选择。 当前国内手机企业有很多家,手机设计企业(design house)也有很多,国内 手机企业做得最多的就是应用,比如基于 windows mobile 的多普达智能手机, 其系统软件平台就是 windows mobile,企业在开发时操作系统及部分应用软件 可以直接购买,甚至相应的驱动都不需要企业自己开发,直接配置即可。在此基 础上再开发新的应用程序。其优点是产品开发周期短,新产品可以很快上市。缺 点是产品开发受制于别人,核心技术掌握在别人手里,处于产业链的下游。国内 的手机企业只有掌握了核心技术,产品开发不受制于别人才能在国内、国际的智 能手机竞争中赢得市场份额。 1.2 研究目标和研究内容研究目标和研究内容 本文结合上海科委的智能手基项目面向智能手机的嵌入式软件系统的研究 与开发 (项目编号:04dz15012) ,对智能手机系统软件进行设计研究。本文的 总体目标是设计与开发 基于嵌入式linux的智能手机系统软件平台。 研究内容包 括:嵌入式linux操作系统、手机基本通讯客户端软件、系统服务、嵌入式数据 库、智能手机应用等。 操作系统的设计内容主要是对嵌入式 linux 的移植、裁减、改进和部分模块 的功能和性能,并增加部分面向手机的功能模块。手机基本通讯客户端软件的设 计内容包括集成式移动消息客户端软件,针对具体的通讯模块的 at 命令接口, 实现 gsm/gprs 通讯功能,并开发可移植的通讯功能 api。系统服务的设计内容 主要是处理所有跟手机相关的业务流程, 系统服务设计是系统软件设计的关键难 点之一。嵌入式数据库用来保存各种信息,嵌入式数据库管理系统统以管理各种 上海交通大学硕士学位论文 第一章 绪论 第 4 页 数据。嵌入式 gui 用来实现人机交互接口,本系统中使用 qt/e 图形库开实现。 智能手机的j2me中间件要实现符合cldc规范的kvm虚拟机, cldc类库以及midp。 本文将重点介绍嵌入式 linux、嵌入式数据库和系统服务程序。 1.3 章节安排章节安排 本文结合上海市科学技术委员会“面向智能手机的嵌入式软件系统的研究与 开发”项目(课题编号:04dz15012),针对智能手机系统软件平台展开研究。全 文共分成七个章节,各章内容安排如下: 第一章 介绍课题研究背景,当前智能手机发展趋势及系统软件平台,课题 的研究目标和研究内容。 第二章 介绍智能手机的系统软件设计,包括硬件开发平台介绍,系统软件 的层次划分等。 第三章 介绍智能手机操作系统 linux 的移植,智能手机嵌入式文件系统。 第四章 介绍智能手机图形用户接口。 第五章 介绍嵌入式数据库,嵌入式数据库管理系统的设计以及在智能手机 中的应用。 第六章 介绍智能手机的系统服务,处理所有跟通讯相关的业务流程,智能 手机的基本应用。 第七章 总结全文关于智能手机系统软件的设计,并提出了进一步的研究方 向。 1.4 本章小结本章小结 本章主要介绍了课题研究背景,当前智能手机的系统软件平台,介绍了本课 题的研究目标和研究内容。 上海交通大学硕士学位论文 第二章 智能手机系统软件设计 第 5 页 第二章第二章 智能手机系统软件设计智能手机系统软件设计 本章将介绍智能手机的硬件开发平台,智能手机系统软件的总体架构设计。 2.1 智能手机的硬件开发平台智能手机的硬件开发平台 早期的手机在硬件上只有一个 cpu,也就是基带处理芯片中的 cpu 核。在这 个 cpu 上既要运行通信协议,又要实现用户界面(称作 ui 或 mmi) 。当然 dsp 会 分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。随着手机 功能在不断发展,摄像头、mp3、蓝牙这些功能可以依靠硬件,对 cpu 的压力还 不是很大,但 java 虚拟机、嵌入式浏览器等应用软件就会对 cpu 资源有较高的 要求。 单 cpu 的首要任务是完成通信协议。 通信协议软件有着很精确的定时要求, 如果这个 cpu 还要兼顾很多应用软件的话,就难免吃力。于是双 cpu 手机应运而 生。一个 cpu 专心把通信协议做好,另一个 cpu 负责 ui、java 虚拟机、嵌入式 浏览器等应用功能。两个 cpu 可以做在一个芯片里面,也可以分开。当前很多手 机设计公司(design house)没有基带处理芯片的开发能力,他们购买国外公司 的手机模块,自己在外面再加一块 cpu。模块跑通信协议,自己加的 cpu 跑 ui 和应用软件,两者通过串行口通信。 本论文的智能手机在硬件开发平台上采用 intel 公司的基于 xscale 核的 pxa272 高性能嵌入式处理器、展讯公司的 sm5100b 通讯模块、flash、lcd、触 摸屏等外围设备实现一个完整的智能手机硬件开发平台。通讯模块有一颗 arm7 的处理器,主开发板上是 pxa272 处理器,主处理器和通讯模块通过串口线相连。 2.1.1 智能手机处理器智能手机处理器 智能手机比普通手机具有更高的性能,关键在于智能手机处理器的性能,普 通手机选用基于 arm7 或 arm9 核的处理器,运行频率只有几十或一百多 mhz, 处理手机基本功能还行,处理媒体播放等性能显得远远不够,随着智能手机的发 展,需要高性能的智能手机微处理器。 本智能手机硬件开发平台的基于 xscale 核的 pxa2724高性能嵌入式处理 器,最高主频可达 520 mhz。xscale 核采用 arm v5te 架构,是 intel 公司的 strongarm 的升级换代产品。 它具有高性能、 低功耗等特点。 xscale 在 strongarm 的基础上,对几个方面作了改进。它实现了 7 级超级流水线。为适应新的程序, 还增加了 8 条指令以提高效率。另外,还新增 2kb 小型数据 cache 和小型指令 cache。新增分支目标缓冲器 btb,支持动态指令与分支预测。pxa272 广泛应用 于 pda、智能手机、mp3 等产品中。 上海交通大学硕士学位论文 第二章 智能手机系统软件设计 第 6 页 2.1.2 通讯模块通讯模块 展讯公司的 sm5100b 通讯模块5(国内真正掌握核心技术的通讯模块)包含 了基带芯片、rf 射频芯片组、combo flash 芯片以及 gsm/gprs 终端所需的全部 软件功能。通讯模块上运行的是嵌入式实时操作系统 thread x 以及相应的通信 协议。sm5100b 有着完善的功能和稳定的性能,另外具有非常小的外形尺寸和非 常轻的重量, 能够满足智能手机、 数传设备等无线终端设备的薄、 轻、 小巧需求。 sm5100b 是四频 gsm 模块(gsm850/900/1800/1900mhz)。支持 gprs class 10,支 持 16 和弦/32 和弦和真人真唱,支持标准 at 命令控制。具有语音功能、sms 信 息、数据功能、gsm 增值服务以及其它等功能。 2.1.3 其他外围设备其他外围设备 智能手机的其他外围设备包括 usb、flash、lcd 显示屏、触摸屏、红外、小 键盘、摄像头、扬声器、麦克风等。目前常用的嵌入式外围设备按功能可以分为 存储设备、通信设备和显示设备三类。存储设备主要用于各类数据的存储,常用 的有静态易失型存储器 (ram、 sram) 、 动态存储器 (dram) 和非易失型存储器 (rom、 eprom、eeprom、flash)三种,其中 flash 凭借其可擦写次数多、存储速度快、 存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。目前存在的绝 大多数通信设备都可以直接在嵌入式系统中应用,包括 rs-232 接口(串行通信 接口) 、spi(串行外围设备接口) 、irda(红外线接口) 、i2c(现场总线) 、usb (通用串行总线接口) 、ethernet(以太网接口)等。由于嵌入式应用场合的特 殊性, 通常使用的是阴极射线管 (crt) 、 液晶显示器 (lcd) 和触摸板 (touch panel) 等外围显示设备。 智能手机的这些外围设备在开发调试阶段一般都是必须的,在最后做成产品 时有相当多的外设是不需要的。 2.2 智能手机系统软件设计智能手机系统软件设计 智能手机的软件设计是智能手机系统实现的关键难点,设计的优劣直接关系 到系统的稳定性、可移植性、可扩展性。本智能手机系统设计将软件分为四层结 构,如图 1 所示。 基本手机应用 扩充/第三方应用 嵌入式 gui j2me 中间件浏览器 嵌入式数据库 系统服务层 操作系统层 硬件层 图 2-1: 智能手机嵌入式软件系统层次结构 上海交通大学硕士学位论文 第二章 智能手机系统软件设计 第 7 页 最底层是操作系统层,主要实现对嵌入式 linux 的移植、裁剪,以及 linux 的快速启动6和电源管理等。 第二层是系统服务层,处理手机业务以及其他服务。 第三层是中间层,包括图形用户接口、j2me 中间件、嵌入式浏览器和嵌入式 数据库。嵌入式 gui 实现人机接口交互;j2me 中间件支持 java 程序和游戏的下 载与运行;嵌入式数据库用来保存各种信息,嵌入式数据库管理系统统以管理各 种数据。 最上层是智能手机应用层,包括智能手机基本应用及其他应用软件,实现手 机的基本功能及其功能等。下面各章节将分别介绍。 2.3 本章小结本章小结 本章主要介绍了本课题的智能手机的硬件开发平台,智能系统软件架构的层 次划分等。系统软件从层次上分为操作系统层、系统服务层、中间层和应用层。 下面各章节将分别展开阐述并将重点介绍嵌入式数据库和系统服务。 上海交通大学硕士学位论文 第三章 智能手机操作系统 第 8 页 第三章第三章 智能手机操作系统智能手机操作系统 本智能手机操作系统选用嵌入式 linux,linux 移植过程是个很复杂的过程 7,要针对不同的手机硬件修改、增加相应的驱动程序,本系统以 hybus 的 pxa272 开发板为硬件开发平台,针对 arm 处理器平台所做的 linux 移植和裁减。 本章将重点介绍嵌入式 linux 的移植及嵌入式文件系统的选择和设计。 3.1 嵌入式嵌入式 linux 移植移植 3.1.1 移植前的准备工作移植前的准备工作 linux 移植就是把 linux 操作系统针对具体的目标平台做必要改写之后,安 装到该目标平台使其正确的运行起来。其基本内容是:获取某一版本的 linux 内核源码,根据具体目标平台对源码进行必要的改写(主要是修改体系结构相关 部分) ,然后添加一些外设的驱动,打造一款适合于目标平台的新操作系统,对 该系统进行针对目标平台的交叉编译,生成一个内核映像文件,最后把内核映像 文件烧写到目标平台的存储设备中。而通常对 linux 源码的改写工作难度较大, 它要求不仅对 linux 内核结构要非常熟悉, 还要求对目标平台的硬件结构要非常 熟悉。所以这部分工作一般由目标平台提供商来完成。比如说针对目前嵌入式系 统中最流行的 arm 平台,它的这部分工作就是由英国 arm 公司的工程师完成的, 我们所要做的就是从其网站上下载相关版本 linux 内核的补丁(patch) 。把它打 到我们的 linux 内核上,再进行交叉编译就行。其基本过程如下: (以本系统移 植的 linux2.6.9 为例) : 1)到 .uk 上下载 linux2.6.9 内核及其关于 arm 平台的补丁 2)给 linux2.6.9 打补丁 3)准备交叉编译环境。交叉编译环境工具链一般包括 binutils(含 as 汇编器,ld 链接器 等) , arm-gcc,glibc 等。交叉编译环境的搭建也是个复杂的过程。 4)修改内核目录下的 makefile 文件,主要是以下几行: 注释掉 arch:=$(shell unamem | sed e s/i.86/i386/-e s/sun4u/sparc64/ -es/arm. */arm/ - e s/sa110/arm/)这一行。 arch := 改为 arch := arm cross_compile := 改为 cross_compile = 你的交叉编译工具中 arm-linux 所在目录。例 如:cross_compile = /opt/crosstool/arm-linux/bin/arm-linux- 5)此后就可以进行编译。 6)以上可以使我们的目标板上跑起 linux 系统,但是你的嵌入式目标板上的一些硬件还没 有驱动起来,这需要编写相应的硬件驱动程序。 3.1.2 交叉编译环境交叉编译环境 交叉编译环境的建立最重要的就是要有一个交叉编译器8。所谓的交叉编 译就是: 利用运行在某机器上的编译器编译某个源程序生成在另一台机器上运行 上海交通大学硕士学位论文 第三章 智能手机操作系统 第 9 页 的目标代码的过程。编译器的生成依赖于相应的函数库,而这些函数库又得依靠 编译器来编译。本课题的智能手机针对 arm 平台,用到的编译器是 arm-linux-gcc, 它是 gcc 的 arm 改版。gcc 是个功能强大的 c 语言编译工具, 其年龄比 linux 还长。无论编译器的功能有多么强大,但它的实质都是一样的, 都是把某种以数字和符号为内容的高级编程语言转换成机器语言指令的集合。 交 叉编译器制作不是本文重点,可参考网上各种参考文档。 3.1.3 修改修改 linux 内核源码内核源码 在完成交叉编译环境的建立之后要进行对 linux 内核的移植修改。linux 的 移植是个繁重的工作,其主要包含启动代码的修改,内核的链接及装入,参数传 递, 内核引导几个部分。 linux 内核分为体系结构相关部分和体系结构无关部分。 在 linux 启动的第一阶段,内核与体系结构相关部分(arch 目录下)首先执行, 它会完成硬件寄存器设置,内存映像等初始化工作。然后把控制权转给内核中与 系统结构无关部分。在移植过程中要改动的代码主要集中在与体系结构相关部 分。 在 arch 目录中我们可以看到有许多子目录,它们往往是用芯片命名的,表 示是针对该芯片体系结构的代码。为 arm 系列芯片编译内核,就应修改 arm 目 录下的相关文件。在 arm 的子目录下我们可以找到一个 boot/bootp 目录,在 bootp 下有一个 init.s 的文件,.s 表示它是汇编语言文件。这里 init.s 是用 arm 汇编写成的。这个 init.s 就是引导 linux 内核在 arm 平台上启动的初始化 代码。它里头定义了一个全局符号_start,它定义了默认的起始地址。同时它也 是整体内核二进制镜像的起始标志。init.s 主要完成以下功能: 1) 定义数据段、代码段、bbs(未初始化数据段)起始地址变量并对 bbs 段进行初始化。 2) 设置寄存器以初始化系统硬件。 3) 关闭中断。 4) 初始化 lcd 显示。 5) 将数据段数据复制到内存。 6) 跳转到内核起始函数 start_kernel 继续执行。 7) 对主寄存器的修改。 第一阶段的启动过程除了以上所说的之外,还要进行内核的链接与装入等工作。 内核可执行文件是由许多链接在一起的目标文件组成的。我们以 elf(可链接可 编译文件,是目前大多数 linux 系统都能认的一种文件格式)为例。elf 文件有 text(文本段) ,data(数据段) ,bbs 等组成。这些段又由链接脚本(linker description)负责链接装入。链接脚本又有输入文件和输出文件。输出文件中 输出段告诉链接器如何分配存储器。 而输入文件的输入段则描述如何把输入文件 与存储器映射。 上海交通大学硕士学位论文 第三章 智能手机操作系统 第 10 页 3.1.4 linux 内核裁减内核裁减 linux 内核的裁剪与编译看上去是个简单的过程,只是对配置菜单的简单选 择,但是内核配置菜单本身结构庞大、内容复杂,具体如何选择需要了解该菜单 的各项具体含义。 linux 内核的编译菜单有好几个版本,你运行: 1)make config: 进入命令行,可以一行一行的配置 2)make menuconfig: 进入我们熟悉的 menuconfig 菜单 3)make xconfig: 在2.4.x 以及以前版本中xconfig 菜单是基于tcl/tk 的图形库的。 所有内核配置菜单都是通过 config.in 经由不同脚本解释器产生.config。内核 编译配置选项这里不具体说明,可查阅各种参考文档。 linux 内核裁减、编译下载简明步骤: make menuconfig / 配置 make dep / 生成依赖文件 make zimage / 编译成功后在 arch/arm/boot 目录下生成 zimage 内核映像文件 minicom / 登陆到开发板 tftp zimage kernel / 下载到开发板上 flash kernel / 烧写到 flash 上 3.1.5 嵌入式嵌入式 linux 驱动移植驱动移植 linux 中的驱动设计9是嵌入式 linux 开发中十分重要的部分, 驱动程序的 作用是应用程序与硬件之间的一个中间软件层, 驱动程序为应用程序展现硬件的 所有功能,对于硬件使用的权限和限制应该由应用程序层控制。有时驱动程序的 设计是跟所开发的项目相关的, 这时就可能在驱动层加入一些与应用相关的设计 考虑,因为在驱动层的效率比应用层高。驱动程序有时会被多个进程同时使用, 这时我们要考虑如何处理并发的问题, 就需要调用一些内核的函数使用互斥量和 锁等机制。linux 的驱动开发调试有两种方法,一种是直接编译到内核,再运行 新的内核来测试;二是编译为模块的形式,单独加载运行调试。第一种方法效率 较低,但在某些场合是唯一的方法。模块方式调试效率很高,它使用 insmod 工 具将编译的模块直接插入内核,如果出现故障,可以使用 rmmod 从内核中卸载模 块。不需要重新启动内核,这使驱动调试效率大大提高。 本系统的一些驱动程序由hybus的pxa272开发板提供扳级支持包(bsp board support package),还要进行 lcd、touch screen、ac97 以及更应用程序相关的 一些驱动程序。 上海交通大学硕士学位论文 第三章 智能手机操作系统 第 11 页 3.2 嵌入式文件系统选择嵌入式文件系统选择 如何选择嵌入式文件系统,应根据嵌入式设备的配置和用途进行选择,总的 来说嵌入式文件系统有以下几种: 3.2.1 第二版扩展文件系统(第二版扩展文件系统(ext2fs) ext2fs 10是 linux 事实上的标准文件系统,它已经取代了它的前任 扩展文件系统(extfs) 。 extfs 支持的文件大小最大为 2 gb,支持的最大文件 名称大小为 255 个字符 而且它不支持索引节点(包括数据修改时间标记) 。 ext2fs 的优点是:(1) ext2fs 支持达 4 tb 的内存;(2) ext2fs 文件名称最 长可以到 1012 个字符。 当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择 1024、 2048 和 4096 字节) 。ext2fs 了实现快速符号链接:不需要为此目的而分配数 据块,并且将目标名称直接存储在索引节点(inode)表中。这使性能有所提高, 特别是在速度上。因为 ext2 文件系统的稳定性、可靠性和健壮性,所以几乎在 所有基于 linux 的系统上都使用 ext2 文件系统。 然而,当在嵌入式设备中使用 ext2fs 时,它有一些缺点: (1) ext2fs 是为 ide 这样的块设备设计的,这些设备的逻辑块大小是 512 字 节,1 k 字节等这样的倍数。这不太适合于扇区大小因设备不同而不同的闪存设 备。 (2) ext2 文件系统没有提供对基于扇区的擦除写操作的良好管理。在 ext2fs 中,为了在一个扇区中擦除单个字节,必须将整个扇区复制到 ram,然后擦除, 然后重写入。考虑到闪存设备具有有限的擦除寿命(大约能进行 100,000 次擦 除) ,在此之后就不能使用它们,所以这不是一个特别好的方法。 (3) 在出现电源故障时,ext2fs 不是防崩溃的。 (4) ext2 文件系统不支持损耗平衡,因此缩短了扇区闪存的寿命。 (损耗平衡 确保将地址范围的不同区域轮流用于写和或擦除操作以延长闪存设备的寿 命) 。 (5) ext2fs 没有特别完美的扇区管理,这使设计块驱动程序十分困难。 3.2.2 日志闪存文件系统(日志闪存文件系统(jffs2)11 瑞典的 axis communications 开发了最初的 jffs,red hat 的 david woodhouse 对它进行了改进。 第二个版本,jffs2,作为用于微型嵌入式设备的 原始闪存芯片的实际文件系统而出现。jffs2 文件系统是日志结构化的,这意味 着它基本上是一长列节点。 每个节点包含有关文件的部分信息 可能是文件的 名称、也许是一些数据。 上海交通大学硕士学位论文 第三章 智能手机操作系统 第 12 页 相对于 ext2fs,jffs2 因为有以下这些优点而在无盘嵌入式设备中越来越 受欢迎: (1) jffs2 在扇区级别上执行闪存擦除写读操作要比 ext2 文件系统好。 (2) jffs2 提供了比 ext2fs 更好的崩溃掉电安全保护。当需要更改少量数据 时,ext2 文件系统将整个扇区复制到内存(dram)中,在内存中合并新数据, 并写回整个扇区。这意味着为了更改单个字,必须对整个扇区(64 kb)执行读 擦除写例程 这样做的效率非常低。要是运气差,当正在 dram 中合并数 据时,发生了电源故障或其它事故,那么将丢失整个数据集合,因为在将数据读 入 dram 后就擦除了闪存扇区。jffs2 附加文件而不是重写整个扇区,并且具有 崩溃掉电安全保护这一功能。 (3) jffs2 是专门为象闪存芯片那样的嵌入式设备创建的,所以它的整个设计提 供了更好的闪存管理。 在嵌入式环境中使用 jffs2 的缺点很少: 当文件系统已满或接近满时, jffs2 会 大大放慢运行速度,这是因为垃圾收集的问题。 在 linux 下,用 mkfs.jffs2 命令创建 jffs2 文件系统: # ./mkfs.jffs2 -o phonefs.img -e 0 x40000 -r fs -p -l 上面显示了 mkfs.jffs2 的典型用法: -e 选项确定闪存的擦除扇区大小 -p 选 项用来在映像的剩余空间用零填充 -o 选项用于输出文件,通常是 jffs2 文件 系统映像。一旦创建了 jffs2 文件系统,它就被装入闪存中适当的位置(引导 装载程序告知内核查找文件系统的地址)以便内核能挂装它。 3.2.3 tmpfs12 当 linux 运行于嵌入式设备上时,该设备就成为功能齐全的单元,许多守 护进程会在后台运行并生成许多日志消息。另外,所有内核日志记录机制,象 syslogd、dmesg 和 klogd,会在 /var 和 /tmp 目录下生成许多消息。由于这 些进程产生了大量数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论