手机软件开发入门 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)。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 的。 目前的大部分手机应用,...