1 绪论 1
1.1 智能家居及其发展趋势 1
1.2 嵌入式系统与智能家居 1
1.3 图形用户界面与智能家居 2
2 硬件体系结构 4
2.1 开发板硬件资源 4
2.2 CPU-S3C44B0X 4
3 软件平台 6
3.1 VxWorks操作系统介绍 6
3.1.1 实时操作系统和分时操作系统的区别 6
3.1.2 VxWorks的特点 6
3.1.3 对一个实时内核的要求 7
3.1.4 VxWorks结构-Wind、组件 7
3.2 主机工具-Tornado 8
3.2.1 Tornado 概述 8
3.2.2 主机仿真与下载 10
4 图形硬件与图形库 14
4.1 S3C44B0X的LCD显示屏 14
4.2 触摸屏 15
4.3 图形库 WindML 15
5 图形驱动的实现 17
5.1 WindML仿真 17
5.1.1 WindML库配置编译 17
5.1.2 非标设备配置 18
5.1.3 非标设备配置320*240彩色LCD 18
5.2 汉字处理 19
5.2.1 BMF文件的结构 19
5.2.2 BMF文件的使用 20
5.2.3 中文英文混合显示 21
5.3 WindML for Arm 23
5.3.1 图形驱动 23
5.3.2 触摸屏驱动 27
5.4 图形库的使用 31
6 智能家居界面的设计与实现 34
总结 40
致谢 41
参考文献 42
附录 43
近年来随着 VxWorks 在国内各领域的广泛应用,VxWorks图像产品的开发也日趋重要。嵌入式系统重要的特点——可定制性(可定制的硬件环境)决定了嵌入式图形产品的开发具有很大的可变性。嵌入式系统供应商不可能为每种目标机环境提供像 Windows 视窗那样开发好的友好的图形产品。嵌入式系统开发商只能提供完善的图形开发方案,嵌入式系统程序开发者必须根据不同目标机的环境和硬件要求,使用开发商提供的这些方案来开发符合自己要求的图形程序,为用户提供一个友好和完整的系统。WindML 就是 VxWorks系统的开发商 WRS 提供的一个图形产品开发方案,由于该方案对汉字和其他文字显示不提供支持,给 VxWorks 系统开发者带来了很多的不便。在基于嵌入式操作系统VxWorks 的图形界面开发过程中,利用WindML 组件时,前期的初始化和配置绘图环境代码较多,但在嵌入式领域中强调实时性及资源消耗最小的情况下,WindML往往是最佳图形组件选择,能够满足大部分基于VxWorks 嵌入式系统中图形界面要求。
本课程设计是基于博创嵌入式开发平台UP-NET ARM300实现的,该平台没有图形驱动,正是基于以上原因,通过开发自己的图形驱动,同时解决该平台的图形显示问题。本文从以下技术难点和重点出发详细揭示了整个设计的实现过程。
(1)针对S3C44B0X和彩色液晶屏,根据WindML图形库驱动的规范,参考近似的驱动程序模板,设计和编写图形驱动程序,并定制编译WindML图形库。
(2)WindML图形库本身是针对GNU编译器设计,需要对WindML图形库源代码和主机参数文件做一些定制修改。定制修改完成后,用GNU编译器完成WindML图形库的重新编译。
(3)为了使用VxWorks的集成开发环境Tornado的主机仿真功能,需要定制、配置、编译主机的WindML图形库。也就是,对应彩色液晶屏的大小和色彩数,利用主机自身的图形驱动,添加一种新的显示模式,以对图形界面作到最近似的仿真。
(4)针对触摸屏芯片ADS7843和4线电阻式触摸屏,根据WindML图形库驱动的规范,参考近似的驱动程序模板,设计和编写触摸屏驱动程序。触摸屏驱动程序需要捕捉触摸事件和计算触点坐标,并将事件向图形库上层传递。
(5)使用WindML的接口函数,最终实现模拟智能家居的图形用户界面程序,可以显示各种基本图形和JPEG图像,可以响应用户的触摸屏输入。该界面程序应该可以在S3C44B0X硬件平台上运行,也可以在主机仿真环境运行。界面程序可以验证图形驱动程序和触摸屏驱动程序的正确性。