Linux嵌入式系统开发
手机编程开发平台是集合了通信技术、嵌入式技术、电子技术、软件工程、操作系统等理论的软硬件的教学与研究开发平台。在这个开发平台上开发相应的程序,可以掌握嵌入式系统设计的流程与方法;可以根据使用者的需求,设计并实现手机的基本功能和扩展功能。
1 手机编程开发平台总体结构
作为专业技术课程,手机编程技术的教学内容包括系统设置、操作系统使用以及应用软件开发,因此,手机编程平台必须支持各项教学内容。另外,作为教学仪器,不仅需要满足全部工程编程测试等技术环节的学习要求,同时,还必须具有系统灵活、调试方便等特点。因此,手机编程开发平台硬件的设计应满足以下要求:支持移动公网通信功能,支持嵌入式设计基本功能,支持扩展操作功能,支持结构调整,支持数字测试。
根据上述要求,把手机编程系统设计划分为硬件平台和软件平台:硬件平台采用了功能模块化设计思想,有利于系统硬件的扩充与更改。基于模块化的设计中,把手机的硬件部分划分为通信单元模块、嵌入式系统模块、音频输入/输出模块和电源模块。各模块在结构与功能上完全独立,且采用统一的接口规范,使各模块能简单方便地连接到一起,构成完整的手机编程硬件平台。
考虑到降低开发成本以及移植与编程难度等因素,软件开发平台用嵌入式Linux操作系统作为开发平台,包括Bootloader的设计、Linux操作系统移植、相关的驱动程序编写、GUI移植等。
软件和硬件平台相结合,形成了硬件开放、源码公开、满足手机编程开发需要的系统。这个系统是嵌入式系统、GSM/CDMA、操作系统、GUI等技术的综合技术体,构建了一个完整的、开放的手机编程平台。
2 手机编程开发平台硬件结构
手机编程平台系统中,需要处理的数据有两大类:通信数据以及应用程序的数据。这里采用了双处理器的解决方案,如图1所示。
①公网通信模块。利用一个微处理器(专用单片机)系统构成通信电路模块,专门处理与GSM/CDMA通信相关的任务。
②应用程序处理模块。利用嵌入式系统构成本地任务处理模块,用来运行操作系统及其他应用程序。
2.1 公网通信模块
公网通信模块如图2所示,采用市场上可购买到的手机模块实现。以GSM公网通信模块为例,手机模块中包括天线、内部Flash、SDRAM、GSM基带处理器、电源等。GSM基带处理器是手机模块的核心部件,其作用相当于一个协议处理器,用来处理外部系统通过串口发送过来的AT指令。天线部分用来实现射频信号发射一接收、调制一解调,以及射频信号与基带处理器之间的信号转换。匹配电源为处理器及射频部分提供所需的电源。
2.2 应用程序处理模块
应用程序处理模块用来实现手机控制和操作的全部功能。本应用处理器模块以S3C2410构成的ARM9嵌入式微处理器系统为核心。应用程序处理模块包括嵌入式微处理器单元、音频输入输出电路单元和电源单元,如图3所示。
图3中,嵌入式微处理器系统模块具有如下技术特点:CPU为Samsung S3C2410X,200 MHz主频;2 MBNOR Flash,64 MB NAND Flash;64 MB SDRAM,由2片K4S561632组成,工作在32位模式下;3.5 in的TFT显示屏,320×240像素;USB1.1标准Client接口,10M以太网网络接口,20针JTAG调试接口。
2.3 手机开发硬件系统
在手机编程开发系统中,硬件系统平台与PC机相连接,把PC机作为程序开发平台,手机硬件系统平台作为嵌入式目标系统。作为开发系统,手机开发硬件平台的安装比较简单,如图4所示。将JTAG电缆插入嵌入式系统单元的JTAG接口,另一端连接PC机并口,就完成了手机编程系统的硬件平台连接。根据开发的需要,可用串口线连接PC机串口与手机编程系统的硬件平台串口。所开发的手机应用程序可以在手机硬件平台系统的嵌入式系统上独立运行,同时程序处理模块还可以通过网络接口直接用于网络通信。
3 手机编程实验台软件平台的构建
手机编程实验台软件平台包括Bootloader、嵌入式 Linuxkernel、GUI QT和用户驱动程序4个部分,Bootloader如图5所示。代码(即启动代码)是处理器复位后进入操作系统之前执行的一段代码,主要是为运行操作系统提供基本的运行环境,如初始化CPU和堆栈、初始化存储器系统等。
软件平台的逻辑操作如图6所示。
4 手机编程开发平台应用程序设计
作为基本技术学习的内容,该基本的手机编程应用程序主要是基于ARM的应用处理模块与GSM模块,来实现相互通信的无线数据传输,包括应用AT指令集的 GSM模块数据读写子程序、键盘控制处理子程序、LCD显示子程序等。此外,还提供了一个手机拨号及收发短信的程序。
(1)主程序流程主程序的流程如图7所示。首先对输入参数进行检查,完成对手机通信模块的串口波特率的设置,同时对串口通信其他的一些属性进行设置,从而保证手机通信模块与GSM模块的正确通信。初始化结束后,就可以建立键盘控制与读GSM模块子函数,此过程需要嵌入式Linux操作系统库函数的支持。最后,主函数处于等待外部中断请求的状态中。外部中断请求分别来自键盘输入和外部呼叫。
(2)键盘控制流程
键盘控制流程如图8所示。键盘操作是用户与无线通信系统的交互接口,用户首先对系统所提供的各种服务菜单进行选择,然后系统根据用户的选择对GSM模块进行设置。之后进行键盘的初始化,显示系统向用户提供的各种服务菜单,并等待用户选择。最后对用户的选择进行判断,并跳入相应的服务程序中。
嵌入式有不少组合名词,例如嵌入式系统,嵌入式软件,Linux嵌入式,Android嵌入式,嵌入式Web,等等。通常对嵌入式的定义其实是对"嵌入式系统"的定义
学习Linux,必须先获得一个Linux主机环境,通常情况下,可以通过以下三种方式获得Linux环境。
1. 双系统安装
如果没有闲置的计算机,或者现有Windows系统的计算机有足够的硬盘空间,可以考虑划分一部分硬盘空间,用于安装Linux操作系统,最终形成双系统计算机。
优点:经济实惠,且对计算机硬件要求不太高。
缺点:安装双系统比较危险,一不小心有可能造成整个硬盘数据丢失;在开发过程使用到Windows工具时,需进行系统切换,不是很方便。
2. 全新硬盘安装(正常装机)
3.安装虚拟机
如果计算机配置较高,可以考虑虚拟机方案。在Windows下安装虚拟机软件,然后通过虚拟机软件创建一台虚拟电脑,最后在虚拟电脑中安装Linux操作系统;也可以安装Linux,在Linux中安装虚拟机再安装Windows。
常用的虚拟机软件有VMware、Virtual Box和Virtual PC等,不同虚拟机软件的使用方法稍有不同。下文以VMware为例进行介绍。优点:安装和使用Linux都很方便;还可同时使用Windows系统。缺点:对计算机硬件要求高,特别是内存,推荐4GB及以上。
在Windows下使用虚拟机,除了可以继续使用Windows下的工具之外,还有下列好处:
学习Linux,必须先获得一个Linux主机环境,通常情况下,可以通过以下三种方式获得Linux环境。
1. 双系统安装
如果没有闲置的计算机,或者现有Windows系统的计算机有足够的硬盘空间,可以考虑划分一部分硬盘空间,用于安装Linux操作系统,最终形成双系统计算机。
优点:经济实惠,且对计算机硬件要求不太高。
缺点:安装双系统比较危险,一不小心有可能造成整个硬盘数据丢失;在开发过程使用到Windows工具时,需进行系统切换,不是很方便。
2. 全新硬盘安装(正常装机)
3.安装虚拟机
如果计算机配置较高,可以考虑虚拟机方案。在Windows下安装虚拟机软件,然后通过虚拟机软件创建一台虚拟电脑,最后在虚拟电脑中安装Linux操作系统;也可以安装Linux,在Linux中安装虚拟机再安装Windows。
常用的虚拟机软件有VMware、Virtual Box和Virtual PC等,不同虚拟机软件的使用方法稍有不同。下文以VMware为例进行介绍。优点:安装和使用Linux都很方便;还可同时使用Windows系统。缺点:对计算机硬件要求高,特别是内存,推荐4GB及以上。
在Windows下使用虚拟机,除了可以继续使用Windows下的工具之外,还有下列好处:
交易额: 233.74万元
无 |江苏省 |南京市 |建邺区
交易额: 184.39万元
无 |河南省 |洛阳市 |洛龙区
交易额: 151.77万元
工作室 |浙江省 |台州市 |玉环县
交易额: 128.29万元
公司 |广东省 |深圳市 |南山区
成为一品威客服务商,百万订单等您来有奖注册中
价格是多少?怎样找到合适的人才?
¥20000 已有0人投标
¥5000 已有1人投标
¥20000 已有14人投标
¥5000 已有2人投标
¥40000 已有4人投标
¥10000 已有2人投标
¥10000 已有1人投标
¥100000 已有0人投标