安装好bsp后,进入platform builder5.0中定制基于“emdoor systems xsbase270:armv4i”的因特网应用类型的系统镜像设计[4]。如图3-2所示。
3.2 添加平台特征和配置平台
为了使系统在定制后能够满足基本的应用,并保证对某些设备的支持,就要向所设计的平台中添加必要的特征。
(1)添加usb active sync(file sync)组件。只有添加此组件,才能使用pc的usb接口与windows ce进行文件同步。这也是在应用软件调试过程中所必须的条件。
(catalog->core os->windows ce devices->applications-end user->
activesync->file sync)
(2)添加chinese[simplified] font。安装中文简体字体后,才能正常显示中文。
(catalog->core os->windows ce devices->international->locale specific support->
chinese[simpified]->fonts)
(3)添加文件系统支持。wwW.133229.Com
(catalog -> core os -> windows ce devices -> file systems and data store -> storage manager -> fat file system)
(4)添加分区管理
(catalog -> core os -> windows ce devices -> file systems and data store -> storage manager -> partition driver)
(5)添加控制面板中的存储器管理组件
(catalog -> core os -> windows ce devices -> file systems and data store -> storage manager -> storage manager control panel applet)
(6)添加基于软件的输入系统(软键盘等)
(catalog -> core os -> windows ce devices -> shell and user interface -> user interface -> software input panel -> software-based input panel (sip) (choose 1 or more) -> sip for large screens)
(7)添加平台管理器(platform manager)
(catalog -> platform manager -> platform manager)
(8)添加usb activesync(usb function)
(catalog -> third party -> bsps -> emdoor systems xsbase270: armv4i -> device drivers -> usb function->usb function bus drivers ->pxa27x usb function)
完成特性的添加后,设置平台的属性。在“platform”菜单下单击“setting”,在configuration下拉菜单中选择“emdoor systems xsbase270:armv4i release”项,选择locale选项卡,进行系统地理位置和环境语言支持的设置。locales列表中,为最下端的“中文(中国)”项打勾。在default language下拉菜单里选择“中文(中国)”为系统的默认语言。如图3-3所示。
在build option列表中,只选择enable eboot space in memory(imgeboot=1)和write run-time image to flash memory(imgflash=1)两项。如图3-4所示。
单击“build os”菜单下的“sysgen”开始组建操作系统。如图3-5所示:
3.3 红外串口与蓝牙串口的打开
经测试,在默认配置下生成的系统镜像,只打开了位于xsbase270模块板上的全功能调试串口,而位于接口扩展板上的红外串口和蓝牙串口并没有被打开。为了能够与家电控制板和gsm模块连接,实现完整的智能家居系统的功能,必须将它们打开。
(1)查找中断号
中断号的定义是在试验箱所提供的板级支持包中被配置的。
打开c:\wince500\platform\xsbase270\src\inc\bsp_cfg.h文件。可以看到调试串口和通信串口的中断号的定义,如图3-6所示。
可以看到调试串口bfuart的中断号是28,转化为16进制为0x1c;通信串口sfuart中断号27,转换为16进制是0x1b。
(2)修改注册表
打开以下文件夹,其中“f:\platform\270\”是在新建操作系统平台时所存储它的磁盘位置。
f:\platform\270\reldir\xsbase270_armv4i_release\
打开platform.reg注册表文件,在此文件中包含了对一些硬件的初始化的代码。
在“if bsp_noserial!”与“end bsp_noserial!”两句代码之间,可以看到蓝牙串口的注册表初始化代码,下面只需要添加初始化红外串口的代码:
;open the ir serial port
[hkey_local_machine\drivers\builtin\serialir]
"irq"=dword:14; 20 irq_stuart
"sysintr"=dword:1b ; 27 sysintr_sfuart
"membase"=dword:40700000; stuart register
"memlen"=dword:40
"devicearrayindex"=dword:82 ; stuart object
"prefix"="com"
"index"=dword:3
"order"=dword:1
"iclass"="{cc5195ac-ba49-48a0-be17-df6d1b0173dd}";
"dll"="ms2_serial.dll"
[hkey_local_machine\drivers\builtin\serialir\unimodem]
"tsp"="unimodem.dll"
"devicetype"=dword:0
"friendlyname"="irserial cable on com3:"
"devconfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4b,00,00, 00,00, 08, 00, 00, 00,00,00,00
修改好注册表代码以后,保存platform.reg文件。打开刚才建立的操作系统设计工程,选择build os菜单下的make run-time image命令,生成新的内核文件nk.bin。
3.4 操作系统的生成与下载
定制并组建windows ce后,将会生成bootloader——eboot.nb0文件和nk内核——nk.bin,将它们烧写进入xsbase270实验箱。
4 应用软件设计
4.1 应用程序编写环境
开发环境:microsoft visual studio 2005
开发语言:microsoft visual c++ 2005
软件开发包:xsbase270 sdk
智能家居系统的应用程序采用visual studio 2005进行开发。visual studio是微软公司开发的windows平台上的应用程序开发环境。visual studio可以创建windows 下的windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和office插件[5]。visual studio 2005面向.net框架(2.0版本),同时可以开发跨平台的应用程序。
4.2 智能家居人机接口设计
打开visual studio 2005,创建一个基于mfc smart device application的vc++程序。如图4-2所示:
到选择平台步骤时选择xsbase270平台,删除默认的pocket pc 2003平台。如图4-3所示。
单击“next”按钮进入选择应用程序类型和资源语言——程序界面上采用的语言的画面。如图4-4所示,选择“dialog based”(基于对话框)类型,资源语言选择“中文(中国)”。其他项目保留默认的选项。
4.3串口通信功能设计
4.3.1 串口通信协议
串口通信协议采用cceseries类实现,通过对此类的成员函数的调用,完成对串口的初始化、读写操作等,在不用串口的情况下,还可以关闭串口。
4.3.2 软件的实现
在visual studio的解决方案视图里添加类cceseries,如图4-7所示。cceseries类的成员函数如表4-2所示。