版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章嵌入式操作系统典型应用-手机开发●手机开发概述●搭建开发环境●应用程序开发和内核开发9.1手机开发概述本书前面介绍了嵌入式操作系统的各种概念和相关的开发技术,本章通过一种流行的嵌入式设备――手机上的应用程序开发和内核开发来进一步讲解相关概念和技术。随着信息技术和电子技术的发展,手机已经成为数量最多,也是最受人关注的消费电子产品,手机厂商诺基亚曾统计目前全球手机用户为约20亿,而到了2010年,全球手机用户有望突破30亿。随着手机市场的快速发展,手机功能也不断得到增加,也有越来越多的厂家希望将自己的应用在手机的平台上进行推广。手机分为智能手机和非智能手机。智能手机就是拥有开放式的操作系统,支持用户自己随意安装第三方软件扩展功能的手机。其它软件厂商能够在此开放式的操作系统基础,开发出相应的应用软件。对于非智能手机而言,虽然也有自己的操作系统,但它是封闭式的,假如没有原厂商的支持,用户是无法对其中的功能进行变更的。由于智能手机的可扩展性好,功能强大,价钱也日趋下降,所以全面取代非智能手机指日可待。手机可以被看作袖珍的计算机。从硬件的角度看,它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备,那就是空中接口。手机通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。手机的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是手机的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和手机协议软件一起完成空中接口要求的通信功能。随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样手机才可能越做越小、越做越便宜。目前手机硬件平台主要有德州仪器(TI)的OMAP,飞思卡尔的i.MX,瑞萨科技的SH-Mobile,Intel的XscalePXA(已经出售给Marvell公司)。目前应用较广泛的是OMAP和PXA。从软件的角度看,手机操作系统主要有在本书第一章中已经介绍过的WindowsMobile,Symbian,OSE,PALM,嵌入式Linux等。本书主要内容是嵌入式Linux,所以本章的实例也基于嵌入式Linux。基于嵌入式Linux的手机有多种,其最大的厂商是摩托罗拉公司,其开发的E680,E6,A1200,Z6,U9,V8,E8,ZN5等Linux手机都特别受欢迎,作为嵌入式操作系统的学习者,须要一个平台进行开发的练习,相对于市面上的开发板或学习板,手机是一种具有很实际应用价值的嵌入式设备,平常除了自己运用外还可以依据自己的爱好编译新的内核和移植或编写新的应用程序运行在上面,假如不希望在自己日常运用的手机上开发,到二手市场上购买一台旧Linux手机用于开发也不须要花费很多钱。摩托罗拉公司的Linux手机款式比较多,本书选择其中一种较为流行的A1200为例子进行讲解,其它手机的开发方法类似。A1200的硬件信息为:处理器为IntelXscalePXA270312MHz;主屏幕是26万色TFT显示屏,辨别率为240×320;200万像素相机。可看出其硬件配置是很高的,更具体的信息还可以通过摩托罗拉的开发网站://developer.motorola获得,下面我们来学习如何在其上进行开发。9.2搭建开发环境开发的第一步是搭建开发环境,可以干脆在Linux上搭建,也可以在Windows上通过Cygwin来搭建,这部分网上的Linux开发爱好者已经做了大量工作,也供应了交叉编译工具链的安装包下载,笔者参考网上的资料进行了简洁的整理,并且为了防止网上资源链接的失效,将所运用的文件都放到本书资源下。所以这部分我们只须要了解其操作流程即可。1.从本书资源中的A1200书目下获得ezx-crosstool-0.5.rar,该文件是用于生成交叉编译工具的,放到某个书目下,如/home/a1200dev。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,linux-2.4.26.tar.bz2等五个压缩包并拷贝到/home/a1200dev/ezx-crosstool-0.5/downloads书目下4..编辑ezx-crosstool-0.5下的build.sh文件:RESULT_TOP=/home/a1200dev/arm,这里的书目依据之前读者将文件解压的地方来设置6.等待一段时间,工具链就编译好了7.在起先工作前,还须要设置环境变量:exportPATH=$PATH:/home/a1200dev/arm/gcc-3.3.6-glibc-2.3.2/arm-linux/bin至此,编译环境搭建完成了。编译环境搭建好后,还须要建立访问A1200的通道,可以通过telnet的方式,具体实现方法网上已有爱好者供应,本书选择较为简洁的一种讲解:1.从本书资源中的A1200书目下获得yan0.rar文件(由://club.ccmove网友yan0供应),yan0.rar文件中的loader_A1200.pkg用MPKG安装到手机上。2.从本书资源中的A1200书目下获得usbnet_a1200.zip文件(由motorolafans论坛下载),解压后将得到的USBNet_A1200.pkg拷贝到手机卡里,选择用MPKG打开,完成后,再一次选择打开方式,用USBNet打开,完成后,程序在手机卡建立了sbin书目,其中有文件名为tnlg3.在手机TF卡中建立文件usblan.lin,内容是:#!/bin/bashechoMotNet>/proc/usbd-switchifconfigusbl0up172.16.16.6netmask255.255.255.0mtu9004..将手机的USB模式改成Modem与电脑连接,选择用Loader打开usblan.lin、用USBNet打开tnlg5.在电脑上运行吩咐:ifconfigusb0172.16.16.5netmask255.255.255.0mtu900telnet172.16.16.6除了telnet外,摩托罗拉公司还供应了SSL访问的方式,具体可参考摩托罗拉开发网站://developer.motorola/products/handsets/motominga1200/上的资料HowtosetupyourSSLconnectioninLinuxdevice。9.3应用程序开发和内核开发9.3.1应用程序开发开发环境搭建好后,读者可以编译一个简洁的helloworld程序并拷贝到A1200中运行。编译的吩咐行为:arm-linux-gcc–ohellohello.c。手机上的应用程序类型多种多样,也有很多已经被移植到Linux手机上,另外由于PXA270312MHz是处理实力相当强的处理器,除了实现手机的常用功能外,还有确定处理实力冗余,甚至可以作为小型服务器运用。手机应用程序开发有其固有的特点,据专业人员概括,从目前来看,影响手机应用程序开发的因素主要有下面几条:1)技术更新快,容许的开发周期短。2)手机软件开发平台多样化,接口不统一。3)市场变更快,难以开发诞生命周期长的产品。4)软件开发模式不合适。5)原型的开发代价较高。6)应用程序通用性差。7)软件的可扩展性差,维护型差,不能从容应对瞬间变更的市场和口味挑剔的客户。8)缺乏合适的嵌入式程序设计模式作为指导。面临这些问题,手机开发人员须要从多方面实行措施,本书在此介绍基于一个能在很大程序上提高开发速度,加强开发人员沟通,增加程序可扩展性和可移植性的开发工具visualstate来进行手机应用程序开发的方法。visualstate(简称VS)是瑞典IAR公司的可视化建模工具,是业界第一个特地面对嵌入式领域的状态机建模工具。利用visualstate建立的状态机模型,能在需求和设计阶段为项目组开发人员沟通和沟通供应便利。visualstate供应了Validator和Veirfy这些工具能够对生成的状态机模型进行检验。最终,visualstate也是一个代码自动生成工具,能够依据模型生成c语言源代码,程序员不必再像以前要自己去实现状态机模型,削减了开发工作量。IAR公司供应visualstate的限于20个状态的试用版本的免费运用,读者可以先下载试用,确定适用后再购买不受限版本。接下来将通过一个例子来描述如何基于visualstate来进行手机应用程序的开发。目前家庭一般都有电视机和DVD两种电器,而这两种电器一般都附送各自的遥控器,遥控器种类多了导致运用不便,购买万能遥控器又须要另外支付费用,假如在手机上实现了对两种电器的遥控,将为老百姓的家庭生活带来便利。设计首先须要利用visualstate供应的可视化编辑工具进行状态机设计,在这里先简洁介绍一下用visualstate设计状态机的基本步骤:1、打开visualstate的Navigator,创建一个新的工作空间和项目,本例中工作空间名为handset_app。2、Navigator自动启动Designer。3、添加一个状态。4、添加状态迁移线。5、双击状态迁移线相连的隐性方框,添加迁移触发事务。6、同时添加该状态迁移所引发的动作,下面上图为添加过程,下图为添加完毕后的视图。设计时遇到问题可以求助与visualstate自带的UserGuide等文档。 本设计中的遥控软件主要实现电视机及DVD机的遥控,进入主菜单后可选电视限制或者DVD限制,确定后进入相应的设备限制,主要供应声音大小限制,节目切换,播放/停止(待机)的限制。状态机设计完成后的视图如下:状态机设计完成后可以用visualstate供应的validator工具进行验证:验证无误后生成代码:所生成的代码仅是状态机的框架代码,实现了项目大部分的功能,但是一些具体的内容须要开发者自己添加。须要开发者自己添加的包括事务队列的处理程序以及状态机具体动作处理程序。前一部分在“visualstate安装书目\Examples\SampleCode\GenericSampleCode\”下有可以干脆运用的示例代码,后者须要自己添加。但是在“visualstate安装书目\Examples\SampleCode\LEDSampleCode\”下有参考代码,可以在其基础上修改,下面将描述如何整理这些代码,使得可以快速生成目标的可执行文件。新建一个放置代码的文件夹,命名为如handset_app_codes。将visualstate生成的代码文件coder拷贝到该书目下,在handset_app_codes下新建书目event_process,并将“visualstate安装书目\Examples\SampleCode\GenericSampleCode\”下的eventHandler.h,simpleEventHandler.c,simpleEventHandler.h等三个文件拷贝到该书目下,在handset_app_codes下新建书目action,并将“visualstate安装书目\Examples\SampleCode\LEDSampleCode\”下的actionsFunctions.c及Inputs_to_Events.c及mainloop.c等三个拷贝到该书目下。接下来是修改这些文件:1、将actionsFunctions.c及Inputs_to_Events.c及mainloop.c文件中的MY_system全部替换为visualstate工程名如handset_app2、将eventhandle.h中的“SEMlibB.h”改为“visualstate工程名SEMlibB.h”,如“handset_appSEMlibB.h”3、将mainloop.c中以SEM开头命名的函数前加上“visualstate工程名”,如SEM_Init();改为handset_appSEM_Init()。4、将“visualstate工程名Action.h”打开并将其声明的函数拷贝到actionsFunctions.c中,依据具体状况添加代码,实现所需功能。代码添加完毕后,进行编译,下载到目标机上运行,测试。至此,该手机软件的开发完毕,visualstate的功能强大,并且在不断更新中,本书只是简洁介绍其在手机开发上的应用,更多的内容,请读者到IAR公司官方网站或visualstate自带文档中获得。在本书资源中可以找到本例程的状态机工程及源码。9.3.2内核开发关于在手机上进行内核开发,由于主流手机操作系统中的symbian和windowsmobile都不供应源代码,所以基本上只能在Linux手机上进行。即使是Linux手机,也会受到一些限制,比如以前摩托罗拉公司就没有开放其Linux手机的内核源代码,这种状况下,进行内核开发无疑是无米之炊。但是最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年电离辐射计量标准器具项目资金筹措计划书代可行性研究报告
- 编制说明-交通船闸闸阀门制造质量检验规程
- 2024年广东省深圳实验教育集团中考英语三模试卷
- 上海市市辖区(2024年-2025年小学五年级语文)人教版课后作业(下学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版竞赛题(下学期)试卷及答案
- 一年级数学计算题专项练习汇编
- 三年级数学上册教案
- 智能照明系统技术规格书
- 包装用皮袋信封小袋产业深度调研及未来发展现状趋势
- 名片纸半成品产业深度调研及未来发展现状趋势
- 学校岗位廉政风险排查登记表
- 《法学第一课》读后感
- 森林防火通道施工组织设计
- 从消费文化角度解读波普艺术的特征
- 公司电梯安全总监、电梯安全员岗位职责
- 物业保洁员劳务合同2篇
- 国有土地上房屋装修备案申请表
- 二年级上册音乐课件《小红帽》(人音版)
- 2023年中级经济师考试真题及答案
- 重庆建筑工程资料全套表格年
- GB/T 2423.3-2006电工电子产品环境试验第2部分:试验方法试验Cab:恒定湿热试验
评论
0/150
提交评论