全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 手机软件的运行环境1.1 概述手机可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB 和串口)。它还有一个更重要的I/O 设备,那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS 等)和基站通信,既可以传输语音、也可以传输数据。手机的CPU 一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU 核。基带处理芯片是手机的核心,它不仅包含CPU 核、DSP 核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样手机才可能越做越小、越做越便宜。1.2 单CPU 和双CPU 很多手机只有一个CPU,也就是基带处理芯片中的CPU 核。在这个CPU 上既要跑通信协议,又要实现用户界面(称作UI 或MMI)。当然DSP 会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。在市场推动下,手机功能在不断发展。摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU 的压力还不是很大,但java 虚拟机、嵌入式浏览器等应用软件就会对CPU 资源有较高的要求。单CPU 的首要任务是完成通信协议。通信协议软件有着很精确的定时要求,如果这个CPU 还要兼顾很多应用软件的话,就难免吃力。于是双CPU 手机应运而生。顾名思义,双CPU 手机就是有两个CPU 的手机,一个CPU 专心把通信协议做好,另一个CPU 负责UI、java 虚拟机、嵌入式浏览器等应用功能。两个CPU 可以做在一个芯片里面,也可以分开。市场上的实际情况是,很多手机设计公司(Design House)没有基带处理芯片的开发能力,他们购买国外公司的手机模块,自己在外面再加一块 CPU。模块跑通信协议,自己加的CPU 跑UI 和应用软件,两者通过串行口通信。很多Design House 也会购买国外方案商的开发板级方案,自己做 PCB,软件上改改UI 和外设驱动。市场上的智能手机基本上全是双CPU 方案,什么Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux 全是运行在第二块CPU 上的。这些商业操作系统无法和无线通信协议软件集成到一块CPU 上。双CPU 的手机功能比较多,但它们一般体积大,耗电多,成本高。现在市场上的大部分手机还是CPU 的。目前的大部分手机应用,例如 Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU 方案里都能实现。我认为不管 3G、4G 如何发展,小巧、实用、低成本的单CPU 方案总会占据较大的市场份额。微软在单CPU 方案的手机市场还没有立足之地,又怎么谈的上什么引领方向呢?本文主要介绍单CPU 手机,大多数论述也适用于双CPU 方案的通信CPU。 1.3 3G 和 4G 3G 和4G 是指第三代、第四代无线通信技术,对手机而言,它们改进的是空中接口的效率,空中接口能以更大的带宽传送数据。通过手机无线上网的速度会更快。这和话音业务、手机应用软件没有直接的联系。当然,手机的嵌入式数据业务由于更高的带宽,会产生更多的可能性。不过这些可能性的实现还是会受到手机输入慢、显示屏小等条件的制约。2 手机软件的组成2.1 概述手机软件和PC 机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第一个跳转指令当然是跳到复位的处理程序,后面是中断处理、错误处理的跳转指令。一上电,手机就跳转到复位的处理程序,开始检查内存、初始化C 运行环境,然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多数手机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。手机软件可以粗略地分成启动模块、操作系统、协议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。启动模块前面已经说过了,下面简单介绍其它部分。2.2 操作系统操作系统在手机软件只占很小一部分。它的主要功能就是提供多任务调度、通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块和预测内存需求。大多数手机的操作系统都是一个很小的内核,例如REX、HIOS 等。高通REX 的源代码连C 代码加汇编也不过一千多行,编译后不过是2、3K 的代码量。而一般手机软件有几百到上千个源文件、超过一百万行的代码。2.3 协议栈协议栈是手机软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯片的所有资源。2.4 数据业务数据业务主要有两种:在前一种,手机相当于一个调制解调器,PC 机通过手机上网,网络协议全在PC 机上,手机提供数据链路。另一种就是嵌入式数据业务,手机内部包含TCP/IP/PPP 等协议,有时还要实现 HTTP 和嵌入式浏览器。2.5 本地存储手机都有本地存储功能,存储电话本、短消息、用户设定等。一般手机都有一个基于flash 的文件系统。早期的手机存储是基于EEPROM 的。2.6 驱动程序硬件驱动一般指外设驱动,不过有的外设已经被集成到基带处理芯片中了。驱动程序包括键盘、电源管理模块、LCD、flash、RTC、串口USB、SIM 卡或 UIM 卡、射频驱动等。2.7 用户界面用户界面(UI)又称作人机界面(MMI),它负责和用户的交互,在必要的时候调用其它模块的功能。除了手机的必备功能外,用户界面也可能包含一些相对独立的应用程序,例如日程表、游戏等。2.8 其它应用其它应用包括Java 虚拟机、WAP 浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。基本上讲完了。大家肯定看得挺没意思吧。这些程序和微软的longhorn、metedata 有什么关系呢?手机程序绝大部分是用C 语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C 语言实现出来。高通的BREW 就是用C 语言硬生生地模仿C+,弄出很多奇怪的宏。一般应用软件的开发不用这么死板,但对各种软件设计方法的了解还是必要的。3 手机的核心技术手机的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的CPU 核、DSP 核都可以买到现成的单元,但通信协议部分就需要自己设计了。手机比较难做好的是耗电量、恶劣信号环境的性能等。4 第三方软件4.1 原理“第三方软件”这个词的含义比较宽泛。本文用它来指代不是硬编码在手机里,而是可以通过数据线或网络下载到手机上,可以装载、运行,也可以删除的软件。前面 讲到的软件都是完整程序的各个部分。这些部分会被放到一起编译,产生一个二进制文件,通过JTAG 口(升级时可以用串口)下载到手机的flash 中。手机一上电,就会从指定地址开始运行。这个地址的内容就是跳转到复位处理程序的跳转指令。哈哈,又讲回头了。第三方软件是指手机可以通过数据线或者网络下载一些可执行文件到文件系统中。然后有一个装载器可以执行这些文件。这样第三方就可以开发一些应用程序,下载到手机中来扩充手机功能。这些可执行文件现在主要有两种格式:java 程序和BREW 程序。java 程序需要java 虚拟机装载运行。BREW 程序是一个很奇怪的东西,它实际就是用与编译手机程序相同的编译器编译出来的目标代码。这些目标代码必须是可以重新定位的,即不能包含全局和 静态变量。装载器将程序将执行权传给给BREW 程序,一种听上去更安全的说法是调用BREW 程序的入口函数。这个入口函数的位置在文件中是固定的。装载器在调用BREW 程序的入口函数时会传入一个地址。通过这个地址,BREW 程序能够顺藤摸瓜,找到系统提供的各种API 的地址,它通过这些API 访问手机的显示、通信等功能。java 程序基本上是平台无关的,针对各种平台设计的java 虚拟机隔离了平台的大部分特性,除了厂家特意提供的一些OEM 功能。BREW 程序显然是平台相关,换一个CPU,就不认识原来的目标码了。4.2 其它除了java、BREW 外,Windows CE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux 这些商业操作系统当然可以提供各种创建第三方程序的方法。在这些环境写程序和在PC 平台写程序很相近,基本上体会不到嵌入式编程的特点,只是屏幕小一些,输入麻烦一些。这些第三方软件不是必需的。手机在3G 的市场中只占了一个较小的部分,网络是大头。而第三方软件相对于手机来说,所占的份额就更小了。程序员有一个嵌入式移动开发的专栏,总在讲这些手机第三方软件的开发手机软件只是嵌入式软件的一部分。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抚州市中医院被服洗涤质量检查与感染控制考核
- 扬州市人民医院乳突根治术专项技能考核
- 福州市中医院模拟教学培训考核
- 萍乡市人民医院师资队伍建设考核
- 济南市人民医院血浆置换技术准入考核
- 金华市中医院成分血临床应用指征与评价笔试试题
- 合肥市人民医院常见内镜品牌奥林巴斯富士宾得基础操作试题
- 泰州市人民医院后勤应急预案启动与执行试题
- 台州市人民医院颈动脉体瘤切除术技能考核
- 盐城市人民医院科室运营效率提升考核
- 公共基础知识试题及答案2025年
- 银行公私联动课件
- 2025年电工(高级)考试练习题及答案
- 清收法律培训课件
- 2026届广东省领航高中联盟高三一模高考语文试卷(含答案详解)
- 数学单招考试试题及答案
- 2025年特种设备压力容器R1证理论考试模拟试题含答案
- 制作小火车课件
- 2025年健康产业行业健康管理与预防保健趋势研究报告
- 无人机考证培训合作协议书5篇
- 骨肉瘤护理查房
评论
0/150
提交评论