版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章嵌入式操作系统典型应用手机开发第9章 嵌入式操作系统典型应用手机开发 手机开发概述手机开发概述 搭建开发环境搭建开发环境 应用程序开发和内核开发应用程序开发和内核开发第9章嵌入式操作系统典型应用手机开发9.1 手机开发概述手机开发概述本书前面介绍了嵌入式操作系统的各种概念和相关的开发技术,本章通过一种流行的嵌入式设备手机上的应用程序开发和内核开发来进一步讲解相关概念和技术。随着信息技术和电子技术的发展,手机已经成为数量最多,也是最受人关注的消费电子产品,手机厂商诺基亚曾统计目前全球手机用户为约20亿,而到了2010年,全球手机用户有望突破30亿。随着手机市场的迅速发展,手机功能也不断得到
2、增强,也有越来越多的厂家希望将自己的应用在手机的平台上进行推广。第9章嵌入式操作系统典型应用手机开发手机分为智能手机和非智能手机。智能手机就是拥有开放式的操作系统,支持用户自己随意安装第三方软件扩展功能的手机。其它软件厂商能够在此开放式的操作系统基础,开发出相应的应用软件。对于非智能手机而言,虽然也有自己的操作系统,但它是封闭式的,如果没有原厂商的支持,用户是无法对其中的功能进行改变的。由于智能手机的可扩展性好,功能强大,价钱也日趋下降,所以全面取代非智能手机指日可待。第9章嵌入式操作系统典型应用手机开发手机可以被看作袖珍的计算机。从硬件的角度看,它有CPU、存储器(flash、RAM)、输入
3、输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备, 那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是手机的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。第9章嵌入式操作系统典型应用手机开发随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样手机才可能越做越小、越做越便宜。目前手
4、机硬件平台主要有德州仪器(TI)的OMAP,飞思卡尔的i.MX,瑞萨科技的SH-Mobile,Intel的Xscale PXA(已经出售给Marvell公司)。目前应用较广泛的是OMAP和PXA。从软件的角度看,手机操作系统主要有在本书第一章中已经介绍过的Windows Mobile,Symbian,OSE,PALM,嵌入式Linux等。第9章嵌入式操作系统典型应用手机开发本书主要内容是嵌入式Linux,所以本章的实例也基于嵌入式Linux。基于嵌入式Linux的手机有多种,其最大的厂商是摩托罗拉公司,其开发的E680,E6,A1200,Z6,U9,V8 ,E8 ,ZN5等Linux手机都非常
5、受欢迎,作为嵌入式操作系统的学习者,需要一个平台进行开发的练习,相对于市面上的开发板或学习板,手机是一种具有很实际应用价值的嵌入式设备,平时除了自己使用外还可以根据自己的兴趣编译新的内核和移植或编写新的应用程序运行在上面,如果不希望在自己日常使用的手机上开发,到二手市场上购买一台旧Linux手机用于开发也不需要花费很多钱。第9章嵌入式操作系统典型应用手机开发摩托罗拉公司的Linux手机款式比较多,本书选择其中一种较为流行的A1200为例子进行讲解,其它手机的开发方法类似。A1200的硬件信息为:处理器为Intel Xscale PXA270 312MHz;主屏幕是26万色TFT显示屏,分辨率为
6、240320;200万像素相机。可看出其硬件配置是很高的,更具体的信息还可以通过摩托罗拉的开发网站http:/获取,下面我们来学习如何在其上进行开发。第9章嵌入式操作系统典型应用手机开发9.2 搭建开发环境搭建开发环境开发的第一步是搭建开发环境,可以直接在Linux上搭建,也可以在Windows上通过Cygwin来搭建,这部分网上的Linux开发爱好者已经做了大量工作,也提供了交叉编译工具链的安装包下载,笔者参考网上的资料进行了简单的整理,并且为了防止网上资源链接的失效,将所使用的文件都放到本书资源下。所以这部分我们只需要了解其操作流程即可。1.从本书资源中的A1200目录下获取ezx-cro
7、sstool-0.5.rar,该文件是用于生成交叉编译工具的,放到某个目录下,如/home/a1200dev。第9章嵌入式操作系统典型应用手机开发2.用rar工具解压,生成目录home/a1200dev/ezx-crosstool-0.53.从本书资源中的A1200目录下获取binutils-2.15.tar.bz2,gcc-3.3.6.tar.bz2, glibc-2.3.2.tar.bz2,glibc-linuxthreads-2.3.2.tar.bz2,l i n u x - 2 . 4 . 2 6 . t a r . b z 2 等 五 个 压 缩 包 并 拷 贝 到/home/a12
8、00dev/ezx-crosstool-0.5/downloads 目录下4.编辑ezx-crosstool-0.5下的build.sh文件:RESULT_TOP=/home/a1200dev/arm,这里的目录根据之前读者将文件解压的地方来设置第9章嵌入式操作系统典型应用手机开发6. 等待一段时间,工具链就编译好了7. 在开始工作前,还需要设置环境变量:export PATH=$PATH:/home/a1200dev/arm/gcc-3.3.6-glibc-2.3.2/arm-linux/bin至此,编译环境搭建完成了。第9章嵌入式操作系统典型应用手机开发编译环境搭建好后,还需要建立访问A1
9、200的通道,可以通过telnet的方式,具体实现方法网上已有爱好者提供,本书选择较为简单的一种讲解:1.从本书资源中的A1200目录下获取yan0.rar文件(由http:/ 网友yan0提供),yan0.rar 文件中的 loader_A1200.pkg 用MPKG安装到手机上。2.从本书资源中的A1200目录下获取usbnet_a1200.zip文件( 由 m o t o r o l a f a n s 论 坛 下 载 ) , 解 压 后 将 得 到 的USBNet_A1200.pkg 拷贝到手机卡里,选择用MPKG打开,完成后,再一次选择打开方式,用USBNet打开,完成后,程序在手机
10、卡建立了sbin目录,其中有文件名为 tnlg 第9章嵌入式操作系统典型应用手机开发3.在手机TF卡中建立文件usblan.lin,内容是: #!/bin/bashecho MotNet /proc/usbd-switchifconfig usbl0 up netmask mtu 9004.将手机的USB模式改成Modem与电脑连接,选择用Loader打开usblan.lin、用USBNet打开tnlg 5.在电脑上运行命令: 第9章嵌入式操作系统典型应用手机开发ifconfig usb0 netmask 255.25
11、5.255.0 mtu 900telnet 除了telnet外,摩托罗拉公司还提供了SSL访问的方式,具体可参考摩托罗拉开发网站http:/ to set up your SSL connection in Linux device。第9章嵌入式操作系统典型应用手机开发9.3 应用程序开发和内核开发应用程序开发和内核开发9.3.1 9.3.1 应用程序开发应用程序开发开发环境搭建好后,读者可以编译一个简单的helloworld程序并拷贝到A1200中运行。编译的命令行为:arm-linux-gcc o hello hello.c 。手机上的应用程序类型多种多样,也有很多已
12、经被移植到Linux手机上,另外由于PXA270 312MHz是处理能力相当强的处理器,除了实现手机的常用功能外,还有一定处理能力冗余,甚至可以作为小型服务器使用。第9章嵌入式操作系统典型应用手机开发手机应用程序开发有其固有的特点,据专业人员概括,从目前来看,影响手机应用程序开发的因素主要有下面几条: 1)技术更新快,容许的开发周期短。2)手机软件开发平台多样化,接口不统一。 3)市场变化快,难以开发出生命周期长的产品。4)软件开发模式不合适。5)原型的开发代价较高。6)应用程序通用性差。第9章嵌入式操作系统典型应用手机开发7)软件的可扩展性差,维护型差,不能从容应对瞬间变化的市场和口味挑剔的
13、客户。8)缺乏合适的嵌入式程序设计模式作为指导。面临这些问题,手机开发人员需要从多方面采取措施,本书在此介绍基于一个能在很大程序上提高开发速度,加强开发人员沟通,增强程序可扩展性和可移植性的开发工具visual state来进行手机应用程序开发的方法。第9章嵌入式操作系统典型应用手机开发visual state(简称VS)是瑞典IAR公司的可视化建模工具,是业界第一个专门面向嵌入式领域的状态机建模工具。利用visual state建立的状态机模型,能在需求和设计阶段为项目组开发人员沟通和交流提供便利。visual state提供了Validator和Veirfy这些工具能够对生成的状态机模型进
14、行检验。最后,visual state也是一个代码自动生成工具,能够根据模型生成c语言源代码,程序员不必再像以前要自己去实现状态机模型,减少了开发工作量。IAR公司提供visual state的限于20个状态的试用版本的免费使用,读者可以先下载试用,确定适用后再购买不受限版本。第9章嵌入式操作系统典型应用手机开发接下来将通过一个例子来描述如何基于visual state来进行手机应用程序的开发。目前家庭一般都有电视机和DVD两种电器,而这两种电器一般都附送各自的遥控器,遥控器种类多了导致使用不便,购买万能遥控器又需要另外支付费用,如果在手机上实现了对两种电器的遥控,将为老百姓的家庭生活带来方便
15、。设计首先需要利用visual state提供的可视化编辑工具进行状态机设计,在这里先简单介绍一下用visual state设计状态机的基本步骤:第9章嵌入式操作系统典型应用手机开发1、打开visual state 的Navigator,创建一个新的工作空间和项目,本例中工作空间名为handset_app。第9章嵌入式操作系统典型应用手机开发2、Navigator自动启动Designer。第9章嵌入式操作系统典型应用手机开发3、添加一个状态。第9章嵌入式操作系统典型应用手机开发4、添加状态迁移线。第9章嵌入式操作系统典型应用手机开发5、双击状态迁移线相连的隐性方框,添加迁移触发事件。第9章嵌入
16、式操作系统典型应用手机开发6、同时添加该状态迁移所引发的动作,下面上图为添加过程,下图为添加完毕后的视图。第9章嵌入式操作系统典型应用手机开发第9章嵌入式操作系统典型应用手机开发设计时遇到问题可以求助与visual state自带的User Guide等文档。本设计中的遥控软件主要实现电视机及DVD机的遥控,进入主菜单后可选电视控制或者DVD控制,确定后进入相应的设备控制,主要提供声音大小控制,节目切换,播放/停止(待机)的控制。状态机设计完成后的视图如下:第9章嵌入式操作系统典型应用手机开发第9章嵌入式操作系统典型应用手机开发状态机设计完成后可以用visual state提供的validat
17、or工具进行验证:第9章嵌入式操作系统典型应用手机开发验证无误后生成代码:第9章嵌入式操作系统典型应用手机开发所生成的代码仅是状态机的框架代码,实现了项目大部分的功能,但是一些具体的内容需要开发者自己添加。需要开发者自己添加的包括事件队列的处理程序以及状态机具体动作处理程序 。 前 一 部 分 在 “ v i s u a l s t a t e 安 装 目 录ExamplesSampleCodeGenericSampleCode”下有可以直接 使 用 的 示 例 代 码 , 后 者 需 要 自 己 添 加 。 但 是 在“visualstate安装目录ExamplesSampleCodeLED
18、SampleCode ”下有参考代码,可以在其基础上修改,下面将描述如何整理这些代码,使得可以迅速生成目标的可执行文件。第9章嵌入式操作系统典型应用手机开发新建一个放置代码的文件夹,命名为如handset_app_codes。将visual state生成的代码文件coder拷贝到该目录下,在handset_app_codes下新建目录event_process,并将“visualstate安装目录ExamplesSampleCodeGenericSampleCode”下的e v e n t H a n d l e r . h , s i m p l e E v e n t H a n d l
19、 e r . c ,simpleEventHandler.h等三个文件拷贝到该目录下,在handset_app_codes下新建目录action,并将“visualstate安装目录ExamplesSampleCodeLEDSampleCode ”下的actionsFunctions.c 及Inputs_to_Events.c 及mainloop.c等三个拷贝到该目录下。接下来是修改这些文件:第9章嵌入式操作系统典型应用手机开发1、将actionsFunctions.c 及Inputs_to_Events.c 及mainloop.c文件中的MY_system 全部替换为visualstate工
20、程名 如handset_app2、将eventhandle.h中的“SEMlibB.h” 改为“visualstate工程名SEMlibB.h”,如“handset_appSEMlibB.h”3 、 将 m a i n l o o p . c 中 以 S E M 开 头 命 名 的 函 数 前 加 上“ v i s u a l s t a t e 工 程 名 ” , 如 S E M _ I n i t ( ) ; 改 为handset_appSEM_Init()。4、将“visualstate工程名Action.h”打开并将其声明的函数拷贝到actionsFunctions.c中,根据具体情况
21、添加代码,实现所需功能。第9章嵌入式操作系统典型应用手机开发代码添加完毕后,进行编译,下载到目标机上运行,测试。至此,该手机软件的开发完毕,visual state的功能强大,并且在不断更新中,本书只是简单介绍其在手机开发上的应用,更多的内容,请读者到IAR公司官方网站或visual state自带文档中获取。在本书资源中可以找到本例程的状态机工程及源码。第9章嵌入式操作系统典型应用手机开发9.3.2 9.3.2 内核开发内核开发关于在手机上进行内核开发,由于主流手机操作系统中的symbian 和windows mobile都不提供源代码,所以基本上只能在Linux手机上进行。即使是Linux手机,也会受到一些限制,比如以前摩托罗拉公司就没有开放其Linux手机的内核源代码,这种情
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏省徐州市政务服务中心(窗口人员)招聘笔试模拟试题及答案详解
- 2026年黄山市徽州区政务服务中心(窗口人员)招聘笔试备考试题及答案详解
- 2026年吕梁地区汾阳市政务服务中心(窗口人员)招聘考试备考题库及答案详解
- 2026年辽宁省本溪市政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年衡水市桃城区医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026-2027学年人教版八上物理 第二章 声现象 单元测试卷
- 2026年湖州市吴兴区医疗系统事业编人员招聘笔试参考试题及答案详解
- 2026年哈尔滨市动力区工会人员招聘考试模拟试题及答案详解
- 2026年辽阳市宏伟区政务服务中心(窗口人员)招聘考试参考题库及答案详解
- 2026年北京市房山区政务服务中心(窗口人员)招聘考试模拟试题及答案详解
- “筑梦航天”青少年航天知识大赛试题与答案
- 公安刑侦业务知识培训课件
- 雷电灾害专项应急预案
- rma销货退回管理办法
- CJ/T 158-2002城市污水处理厂管道和设备色标
- 2025年版!药食同源物质目录(106种)
- 《海洋遥感技术》课件
- (高清版)DB23∕T 3699-2024 养老机构失智症老人照护规范
- DL∕T 802.8-2023 电力电缆导管技术条件 第8部分:塑钢复合电缆导管
- 变压器局部放电的
- 高中新生入学登记表
评论
0/150
提交评论