MicroWindows在嵌入式系统中的应用研究
【摘要】:随着电器产品的数字化,嵌入式系统在越来越多的领域中得到应用,产品与用户之间交互增多,图形用户界面(Graphical User Interface),作为人机交互技术的重要内容,以丰富的图形图像信息、直观的表达方式与用户交互。使用GUI系统作为人机界面,使软件系统简洁、美观、应用方便,更加人性化,现在GUI己经大量应用在嵌入式领域。嵌入式图形用户界面系统在嵌入式系统中的地位日益重要。
论文分析比较了MiniGUI, MicroWindows, OpenGUI及Qt/Embedded四种主流嵌入式图形用户界面系统的功能与性能,并选择MicroWindows为研究对象进行深入研究。接下来分析了MicroWindows分层的体系结构,并对其中重要部分进行了深入研究,较好地从整体上清晰的把握MicroWindows系统的架构和设计思想,嵌入式图形系统MicroWindows采用分层的体系结构和客户服务器模型,具有运行稳定、占用系统资源少等特点,但也存在对多线程程序的支持、客户/服务器通信效率低等不足,针对这些问题,做了以下工作:
MicroWindows的服务器能够支持多个客户端进程同时运行,但存在客户端进程必须是单线程的要求,否则就会对临界资源产生访问冲突,如请求包缓存区,网络套接字和事件队列等临界资源。本文根据客户进程和服务器之间发出请求、接收应答和事件驱动的交互方式,针对同步和异步的交互过程分别采用不同的策略,实现了MicroWindows支持客户端多线程的应用程序。
MicroWindows的客户端进程和服务器之间通过网络套接字socket进行通讯,一次数据传输需要经过从客户缓存区到Linux核心空间,再从Linux核心空间到服务器空间的两次拷贝过程,这种方式带来较大的系统开销,特别是传送大量数据时效率较低。本文通过共享内存的通讯方式,避免了数据的两次拷贝过程,提高通讯效率,并且能够实现对用户透明的动态切换两种通讯方式。最后结合具体的应用,通过实验程序验证了改进的可行性和正确性。