服务进程和应用进程通过调用动态库实现基本窗口显示功能。其中窗口树与剪切域都定义在动态库中,对于服务进程或应用程序而言,它们是透明的,不需要进行管理。因服务进程与客户进程分别运行在不同的进程空间中,所以虽然在动态库中定义了相同的数据,但它们之间不会产生任何冲突。
设计对动态库中封装的函数进行了分层。其中直接针对Framebuffer进行输出的函数位于系统最低层,其上是设备上下文。因每次对一个窗口输出的时都要首先建立设计上下文,所以设备上下文总可以引用窗体结构,自然也可以引用到窗口剪切域,在剪切域范围内才可以进行输出。
图形设备接口建立在设备上下文之上,主要包括点、线、面、文本等。如上文所述,输出之前,首先建立设备上下文,即其输出的目标是设备上下文,而不是窗口。
图形设备接口的上层是应用开发接口即API层,桌面进程与客户进程都通过调用API函数实现系统功能。
另外,系统建立了输入的抽象层,屏蔽了不同输入设备。
GSM/GPRS Server多工通信服务器软件
GSM/GPRS Server多工通信服务器软件是电话、短信及数据业务的守护进程,负责响应应用程序转发的用户操作事件及从串口的获得的无线通信模块事件,是整个智能手机系统的核心。在这部分的工作中要实现多链路的数据通信、事件优先级判别,并在执行数据通信时,保证电话、短信的接入。具体程序设备结构如图所示。
3.机系统中的应用程序设计
有了中间层的服务程序,上层应用程序可以根据GUI Server及GSM/GPRS Server提供的接口进行移植和开发。本设计中实现了电话控制程序、短信收发的管理及数据精力的应用等。下面以电话控制程序为例,介绍智能手机应用程序的设计与实现。
本人将电话控制程序设计分为三个运行态:PowerOn State(上电态)、Idle State(空闲态)、Execution State(执行态)。图5表示了三个状态之间的关系和进入各个状态的条件。
电话控制程序在智能手机系统上电复位、GSM/GPRS Server启动后,进入Power-on State(上电态)。在上电态,程序首先进行初始化工作,与GSM/GPRS Server通信,获得系统状态。初始化后,即进入Idle State(空闲态)。在空闲态,程序循环等待GSM/GPRS Server的呼入事件及来自键盘的呼出事件;当这些事件发生时,程序进入Execution State(执行态)。在执行态,用户进行语音通信,通话结束后,程序又回到空闲态。
本系统设计成功地应用于实际工程项目中,其可行性和实用性已在实际应用环境中得到检验。下一步,可将系统的CPU主频进一步提高,无线通信模块也可换成符合3G标准的。这样,就可以在本系统设计的基础上,实现更为广泛的手持设备应用。
六、总结
采用ARM技术知识产权(IP)核的微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。作为一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为世界上应用最为广泛的嵌入式微处理器。通过这次嵌入式系统智能手机(PDA)设计方案,使我们具备一定微机原理基础的学生掌握开发嵌入式系统的多方面知识,从而初步具备设计开发基于arm处理器系统的能力。在这里是衷心感谢我们的黄建华老师在课堂上给我们带来如此生动的教学,在他的帮助下让我认识到嵌入式系统这学科的重要性,让我感受到在开发嵌入式系统的过程中体会到不少乐趣。但是在短短的10周的内学习嵌入式系统这门课是远远不够的,嵌入式系统的理论和技术正在日新月异地发展,这更加要我们在以后的学习和工作中不断去探索不断去完善,另外由于水平有限再加上时间仓促,文中难免有不妥或错误之处。希望老师能多多包涵。我相信只有负出了努力,没有收不到的果实。我希望学习嵌入式系统这门学科也一样!愿与努力在嵌入式系统开发前沿的学者一起共勉。