Microsoft Word - Development of Home Automation Demo Kit _CN_.doc

Similar documents
AL-M200 Series

ebook140-8

ebook140-9

手册 doc

PTS7_Manual.PDF

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

AL-MX200 Series

EK-STM32F

ARM JTAG实时仿真器安装使用指南

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

Simulator By SunLingxi 2003

Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

IP505SM_manual_cn.doc

audiogram3 Owners Manual

Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

r_09hr_practical_guide_kor.pdf

GIGA-BYTE TECHNOLOGY CO., LTD. ( GBT ) GBT GBT, GBT

T1028_Manual_KO_V3 0.pdf

Guide to Install SATA Hard Disks

Ch03_嵌入式作業系統建置_01

目次 

Chapter 2

Eclipse C C++, or

ICD ICD ICD ICD ICD

CA-C750К

CL-S10w

GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

PowerPoint Presentation

Microsoft Word zw

untitled

Windows 2000 Server for T100

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

Data Management Software CL-S10w

P4i45GL_GV-R50-CN.p65

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

c_R9000PRO_101

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

P4Dual-915GL_BIOS_CN.p65

c-AR64SH-102

1.ai

Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

Microsoft Word - 11.doc

indows CE 1996 Semiconductor Industry Association (SIA) Windows CE Windows Embedded CE 6.0 Windows CE Windows Embedded CE 6.0 Micr

untitled

目 录

AP128DG-H AP128DG-H 3 13 ATiRADEON TM Win 98/98SE, WinME Win XP Direct X

Table of Contents Design Concept 03 Copyrights & TradeMark 04 Special Notice 05 Notice to concerned 05 Installation and Registration Introduction 07 s

专注于做最好的嵌入式计算机系统供应商

ebook140-11

<55342D323637CBB5C3F7CAE92E786C73>

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

epub83-1

untitled

InstallShield InstallShield InstallShield Windows Installer ISWI ISWI InstallShield InstallShield InstallShield Windows Installer WI In

Data Management Software CL-S10w

PPBSalesDB.doc

+01-10_M5A_C1955.p65

T

典型自编教材

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

8idml_20_1_q

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

GV-R7500L Win 98/ 98SE, WinME Win XP Direct X Windows NT WINDO

untitled

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

LSI U320 SCSI卡用户手册.doc

Microsoft Word - 正文.doc

68369 (ppp quickstart guide)

Sophos Central 快速安裝手冊

RunPC2_.doc

CH01.indd

PaPaGO! PaPaGO! PaPaGO! PaPaGO! PaPaGO! PaPaGO!

PCM-3586用户手册2.0

HighPoint产品的FAQ手册

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

775i65PE_BIOS_CN.p65

K7VT2_QIG_v3


Chapter 2 GIGA-BYTE TECHNOLOGY CO., LTD. ("GBT") GBT GBT GBT

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

Abstract arm linux tool-chain root NET-Start! 2

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

untitled

中文手册

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

Ác Åé å Serial ATA ( Sil3132) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA (5) SATA (a) S A T A ( S A T A R A I D ) (b) (c) Windows XP

STC-U10

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

P4VM800_BIOS_CN.p65

untitled

VioCard-300 user manual

串口、网口猫池使用说明书

ch08.PDF

untitled

epub 61-2

Transcription:

家庭自动化开发演示盒 2006-01-19 文档展示如何在基于 ICOP Vortex86 系列主板上开发 WinCE 应用程序, 包含如何建立 WinCE 操作系统平台 如何调整 WinCE 功能 如何编写 WinCE 演示程式 如何调试 embedded Visual C++ 程式 以及如何实做一个 DOM 工作电子盘 阅读此文档, 开发员需要具备制作 WinCE 映像和运用 embedded Visual C++ 4.0 编写 MFC 程式的技能 1 of 46

目录 家庭自动化开发演示盒...1 硬件平台...3 软件平台...4 建立 WinCE 平台...5 调整 WinCE 映像功能...12 RAM...12 屏幕分辨率...12 串口调试...12 Hive-based Registry...13 触摸屏...14 增加软输入面板...15 记录笔...15 无线网络驱动...15 Windows XP 界面...16 编译选项...17 编译和测试映像...18 导出基于 evc++ 的 SDK...20 安装 SDK...25 运用 evc++ 开始开发...29 编写代码...35 OnInitDialog()...36 OnButton?()...36 OnChangeEdit?()...36 OnTimer()...36 ReadTemp()...37 测试和调试程式...38 制作发布版映像和程式...42 安装映像和程式...42 用 DOS 装载 WinCE...42 用 BIOS Boot Loader 装载 WinCE...43 运行映像...44 增加桌面快捷方式...45 自动运行程式...45 技术支持...46 2 of 46

硬件平台 ICOP-6072 是演示盒主控制板, 更多详细资料请参考 http://www.icop.com.tw/results.asp?search=6072, 它包含 12-bits GPIO 128MB RAM USB 和 2 个串口, 演示盒详细硬件描述如下 : GPIO, 控制灯和风扇继电器开关 USB, 驱动 USB 触摸屏 串口, 读取环境温度 ICOP-6083-Mini-PCI 和 VIA VT6655 mini-pci 无线网卡, 实现无线网络功能 LT-200 基线板, 用于 I/O 控制,20-pin 连接头和 Vortex86 GPIO 相连 参考图片如下 : 因为 ICOP-6072 主板没有以太网模块, 程序员可以运用其它带有以太网模块的 Vortex86 系列主板开发, 或者增加 ICOP-6083L1 (http://www.icop.com.tw/products_detail.asp?productid=209) 以太网模块 在我们演示开发阶段, 运用 ICOP-6083L1 调试, 开发完毕, 移走 ICOP-6083L1 模块, 安装 ICOP-6083-Mini-PCI + VIA VT6655 mini-pci 无线网卡实现网络功能 3 of 46

软件平台 软件平台建立步骤如下 : 1. 运用 WinCE Platform Builder(PB) 编译 WinCE 映像 我们选择 Internet Appliance 项, 并为了节省磁盘空间和编译时间, 我们去掉无用的组件 2. 增加记录笔和 hive-based 注册表, 用于保存触摸屏校准数据 ; 增加软件输入面板和 VIA VT6655 无线模块驱动 3. 编译和测试 WinCE 映像, 确信所有硬件工作正常 4. 导出用于 embedded Visual C++ 开发的 SDK 5. 开发基于 evc++ 的 MFC 程式, 在模拟器或者演示盒上测试和调试 6. 编写代码并调试 7. 编译发布版的 WinCE 映像和程式 8. 安装发布版 WinCE 映像和程式 更多建立演示盒的详细细节, 后续章节逐步展示 4 of 46

建立 WinCE 平台 这一节, 我们向开发员展示如何逐步制作一个基本的 WinCE 映像 更多详细资料, 请参考 WinCE 映像制作向导 http://www.vortex86.com/os.htm#wince 第一步 : 开始新的 platform 向导 5 of 46

第二步 : 输入工程名称 6 of 46

第三步 : 选择 ICOP Vortex86 BSP 7 of 46

第四步 : 运用 Internet Appliance 模板开始我们的配置 8 of 46

第五步 : 我们只需要 Internet Explorer, 去掉其它组件 9 of 46

第六步 : 不选择 WAN 选项 10 of 46

第七步 : 完成向导, 基本 WinCE 映像配置成功 我们完成了一个基本的 WinCE 演示盒平台, 因为去掉不需要的组件, 最后发布版的 WinCE 映像大约 10MB 注意, 映像越小, 装载映像时间越少, 初始化 WinCE 系统时间越短 11 of 46

调整 WinCE 映像功能 编译我们的 WinCE 映像前, 我们必须针对演示盒硬件增加相应的软件支持 具体的调整步骤如下所示, 更多详细资料, 请参考我们的技术文档 Windows CE Development Note RAM 下述步骤展示如何在 WinCE 5.0 上使用 128MB RAM, 如果你的 Vortex86 系列主板只有 64MB 内存, 忽略此节 1. 打开文件 config.bib 文件, 找到 IF IMGRAM64 段 2. 修改 02800000 为 0680000 (128-8-16=104=68H) 3. 修改 "\%_WIN_DIR%\public\common\oak\csp\x86\oal\oeminit.asm"; 具体的, 找到 "_OEMAddressTable:" 修改 "dd 80000000h, 0, 04000000h" 为 "dd 80000000h, 0, 08000000h" 4. 运行 Platform Builder -> Build -> Open Build Release Directory 5. 改变工作目录 "\%_WIN_DIR%\public\common\oak\csp\x86" 6. 运行 build -cf 7. 选择 Platform -> Setting -> Build Options -> Enable "Enable Images Larger than 32MB" 8. 编译映像 屏幕分辨率 打开 platform.reg, 找到下述位置 : [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SIS550] ; ================ Display Setting ================= ; "Resolution"=dword:0 ; 0:640x480; 1:800x600; 2:1024x768; 3:1280x1024 ; "ColorDepth"=dword:10 "RefreshRate"=dword:3C ; 3C:60Hz, 46:70Hz, 55:85Hz 在实例注册表中, 分辨率和色度设置功能关闭, 这样你可以运用 boot loader 进行设置, 例如 : 运行 loadcepc /l:800x600x16 nk.bin 传递参数给 WinCE 如果分辨率和色度设置功能打开, 运用 boot loader 传递的分辨率和色度参数无效 如果开发员想打开分辨率和色度设置功能, 去掉 ;, 用 Resolution 和 ColorDepth 作为各行的开始, 并参考注释进行相应设置 : 0 表示设置成 640x480, 1 表示设置成 800x600, 等等 ;10 和 20 是十六进制数,10 表示 16-bit 颜色,20 表示 32-bit 颜色, 等等 对于 LCD, 我们设置 Resolution 为 0 (640x480), RefreshRate 为 3C 串口调试 WinCE.NET 将第一个串口作为调试串口, 文件 platform.reg 中默认 COM1 I/O 地址是 0x2f8,IRQ 是 3 WinCE 中串口设置表如下 : 12 of 46

WinCE.NET I/O Address IRQ Normal PC Debug Serial 0x3F8 COM1: COM1: 0x2F8 3 COM2: COM2: 0x3E8 4 COM3: COM3: 0x2E8 5 COM4: 如果开发员打开 COM1: 发送数据, 数据实际被发送到串口 2 并输出 遵循如下步骤, 开发员可以关闭调试串口 打开 WinCE 5.0 中 \%_WIN_DIR%\PUBLIC\COMMON\OAK\CSP\X86\OAL\debug.c, 增加这一行代码 : void OEMInitDebugSerial(void) { pbootargs = (BOOT_ARGS *) ((ULONG)(*(PBYTE *)BOOT_ARG_PTR_LOCATION) 0x80000000); if (! pbootargs->ucbauddivisor ) { } pbootargs->ucbauddivisor = 6; // Default to 19.2 if nothing specified. pbootargs->uccomport = 0; //-- add this line switch ( pbootargs->uccomport ) { case 1: IoPortBase = (PUCHAR)COM1_BASE; break; ICOP-6072 主板 COM1 的缺省设置是 IRQ4,I/O 是 3F8, 所以我们必须修改文件 platform.reg 中的注册表设置 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]: "SysIntr"=dword:14 ; 14 -> IRQ 4, 1a -> IRQ 10. "IoBase"=dword:03F8 Hive-based Registry 为了保存触摸屏校准数据, 我们增加 hive-based 注册表组件, 选择 Catalog -> Core OS -> File System and Data Store -> Registry Store -> Hive-based registry 触摸屏正常工作前, 请确认下述组件已经加入到工作空间中 ATAPI PCI/IDE Storage Block Driver FAT File System 并且, 增加如下注册码到你的 platform.reg 文件中, 使能 hive-based 功能 ; @CESYSGEN IF FILESYS_FSREGHIVE ; HIVE BOOT SECTION 13 of 46

[HKEY_LOCAL_MACHINE\init\BootVars] "SYSTEMHIVE"="\\Registry\\system.hv" "PROFILEDIR"="\\Registry" "Start DevMgr"=dword:1 "DefaultUser"="User" [HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ] "Flags"=dword:1000 [HKEY_LOCAL_MACHINE\Drivers\Resources\IO] "Flags"=dword:1000 [$(PCI_BUS_ROOT)\Template\GenericIDE] "Flags"=dword:1000 [HKEY_LOCAL_MACHINE\System\StorageManager\FATFS] "Flags"=dword:1000 [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile] "MountFlags"=dword:2 [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\PCI-PCI-BRIDGE] "Class"=dword:06 "SubClass"=dword:04 "NoConfig"=dword:1 ; END HIVE BOOT SECTION ; @CESYSGEN ENDIF FILESYS_FSREGHIVE 触摸屏程序员可以从 ICOP 驱动 CD 上获取触摸屏驱动或者从 http://www.egalax.com.tw/eg/drivers.htm 获取, 驱动需要遵循如下步骤手动增加 : 1. 拷贝驱动文件 (TouchKit.exe, Calbration.exe, DrawTest.exe and UsbTouch.dll) 到 \WINCE500\ PBWorkspaces\Home_Automation_Kit\WINCE500\ICOP_Vortex86_50D_x86\OAK\files 2. 修改 \WINCE500\PBWorkspaces\Home_Automation_Kit\WINCE500\ICOP_Vortex86_50D_x86\OAK\ files\project.bib 文件, 增加如下文件到 WinCE 映像 FILES ; Name Path Memory Type 14 of 46

; ---------------- ----------------------------------------- ----------- TouchKit.exe $(_FLATRELEASEDIR)\TouchKit.exe NK S Calbration.exe $(_FLATRELEASEDIR)\Calbration.exe NK S DrawTest.exe $(_FLATRELEASEDIR)\DrawTest.exe NK S UsbTouch.dll $(_FLATRELEASEDIR)\UsbTouch.dll NK S 3. 或者, 选择 Project -> Insert -> Existing Project -> File Type -> *.* 增加 DLL 文件, 这样更加容易 4. 增加 USB 触摸屏驱动注册键代码 [HKEY_LOCAL_MACHINE\Drivers\TouchKit] "RBSIZE"=dword:800 "RBTIME"=dword:989680 "FLAGS"=dword:1 "BeepFrequence"=dword:1F4 "BeepTime"=dword:64 "ZFilterThreshold"=dword:800 "ZFilterBound"=dword:00100001 "SoundType"=dword:0 [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\14371_1\0_0_0\255_255_255\USB_TOUCH_Driver] "DLL"="USBTouch.dll" [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\14371_2\0_0_0\255_255_255\USB_TOUCH_Driver] "DLL"="USBTouch.dll" [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\4660_1\0_0_0\255_255_255\USB_TOUCH_Driver] "DLL"="USBTouch.dll" [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\3823_1\0_0_0\255_255_255\USB_TOUCH_Driver] "DLL"="USBTouch.dll" [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\3823_2\0_0_0\255_255_255\USB_TOUCH_Driver] "DLL"="USBTouch.dll" 增加软输入面板因为我们用触摸屏作为用户接口, 所以演示盒上没有键盘, 为了有效输入数据, 我们向 WinCE 映像中增加软输入面板 ; 选择 Catalog -> Core OS -> Shell and User Interface -> Software Input Panel, 增加 Software-based Input Panel Driver 和 SIP for Large/Small Screens 如果用户向从触摸屏输入数据, 软键盘将会出现在屏幕上 记录笔 如果 USB 触摸屏驱动正常, 记录笔不正常工作, 运行 touchkit.exe 程式进行校准 无线网络驱动 获取 WinCE 5.0 的 VIA VT6655 驱动后, 遵循安装指令, VNT VNWLC5 Wireless LAN 组件会出现在目录窗口 15 of 46

Windows XP 界面 在工作空间中增加 Catalog -> Core OS -> Shell and User Interface -> User Interface -> Customizable UI -> Windows XP-like Sample Skin, 你的用户界面会出现漂亮的类 Windows XP 界面 16 of 46

编译选项 为方便测试 WinCE 映像, 我们采用 debug 模式, 并使能对我们有帮助的一些选项, 如下图所示 : 17 of 46

编译和测试映像 调整好我们的 WinCE 映像功能后, 使能 KITL, 用 debug 模式编译 ; 然后在演示盒上引导到 DOS 操作系统, 装载 eboot.bin 程式, 借助网络从 PB 接收 WinCE 映像 参考我们的技术文档 Install Software into ICOP Boards, 了解如何拷贝文件到 DOM; 并从 PB 的帮助菜单中搜索 loadcepc boot disk 相关资料 第一步 : 选择 Target -> Configure Remote Connection 18 of 46

第二步 : 按下配置按钮 第三步 : 引导演示盒进入 DOS 操作系统, 装载 eboot.bin 程式广播 BOOTME 消息,PB 获取该消息后, 一个设备名称将会出现在第二步显示的对话框内 第四步 : 选择 Target -> Attach Device, 发送 WinCE 映像到演示盒 第五步 :debug 信息发送到 debug 窗口, 如果 WinCE 映像不能正常引导, 检查 debug 消息, 获取相应消息 我们没有测试 VT6655 模块, 因为 ICOP-6083L1 模块用于以太网功能 如果程序员想测试它, 请制作发布版的 WinCE 映像并拷贝该映像到 DOM 运行 19 of 46

导出基于 evc++ 的 SDK 第一步 : 在 PB 中选择 Platform -> SDK -> New SDK, 因为是第一次配置 SDK,SDK 向导启动起来 20 of 46

第二步 : 填充基本信息 第三步 : 选择 MFC 支持 21 of 46

第四步 : 完成向导 第五步 : 选择 Platform -> SDK -> Configure SDK, 并选择 Transports 栏, 实例中, 我们用 KITL 传输 如果选择 ActiveSync,WinCE 映像中需要包含 ActiveSync 组件, 并且你的开发 PC 上需要安装 ActiveSync 客户端软件, 用以连接该设备 22 of 46

第六步 : 选择 Startup Server 栏, 我们用 CESH, 关于配置的更多信息, 请参考 PB 的帮助文档 23 of 46

第七步 : 选择 Platform -> SDK -> Build SDK, 开始制作 SDK, 一个 SDK 目录将会出现在你的工程目录下 ; 找到 MSI 文件, 该文件就是程序员在家庭自动化开发演示盒上需要的 SDK 安装文件 上述步骤完成后, 一个 SDK 目录将会出现在工程目录, 该目录下的 MSI 文件就是 embedded Visual C++ 开发员需要的 SDK 安装文件 24 of 46

安装 SDK 第一步 : 运行 BSP 向导产生的 MSI 文件 (at \WINCE500\PBWorkspaces\Home_Automation_Kit\SDK) 第二步 : 选择 Accept 选项 25 of 46

第三步 : 输入基本信息 第四步 : 选择完全安装 26 of 46

第五步 : 默认缺省安装路径 第六步 : 按下 install 按钮, 开始安装 SDK 27 of 46

第七步 : 安装 SDK 第八步 : 完成 SDK 安装 28 of 46

运用 evc++ 开始开发 第一步 : 运行 embedded Visual C++, 选择 File -> New, 选择 WCE MFC AppWizard (exe), 并填充文件名称, 我们用 MFC 开发演示程式 29 of 46

第二步 : 选用基于对话框的程式 30 of 46

第三步 : 选用默认配置, 按下 next 按钮 31 of 46

第四步 : 选用静态链接库 ; 使用该配置, 我们的程式在没有 MFC 库支持的 WinCE 上也能正常工作 32 of 46

第五步 : 按下 finish 按钮 33 of 46

第六步 : 弹出信息对话框, 按下 OK 按钮 34 of 46

编写代码 演示程式主任务是用 5 个 GPIO 管脚控制灯 风扇和门继电器, 并从串口读温度和显示 ; 基于显示的温度, 可以增加一些环境控制, 例如, 如果环境温度超过 30 摄氏度, 打开风扇 ; 最后, 所有 I/O 状态在程式中列出 为了完成以上目的, 我们需要下述功能 : 设置 I/O 模式 状态和温度 4 个按钮开闭 2 个灯 4 个按钮开闭 2 个风扇 从串口读温度并解码的子程序 根据温度控制风扇 定时更新 I/O 状态, 并检查环境控制状态 对话框布局如下述图片所示 : 35 of 46

OnInitDialog() 程式设计 GPIO 的 0-4 位用于输出模式, 并且输出低电平时, 关闭所有 I/O 设备 /* set GPIO[5-0] as output direction */ outpw(0x864, 0x0fe0); outpw(0x866, 0x0fff); 我们也设置一个 500ms 间隔的时钟定时器 : SetTimer(1, 500, NULL); 时钟定时器会发送定时消息给程式, 我们只需调用 OnTimer() 函数读取温度和检测环境 其它代码用于初始化 COM1, 参数配置为波特率 2400 无奇偶校验 8 位数据位 1 位停止位 ; 温度传感器每秒发送 ASCII 字符数据到 COM1, 具体请参考 ReadTemp() 函数 关于如何使用 Vortex86 GPIO, 请参考我们的技术文档 How to Use GPIO on Vortex86? OnButton?() 这个函数实现 GPIO 输出软开关按钮,GPIO 连线分配表见右边 如果按下 ON 按钮, 程式发送低信号, 触发电打开状态, 而后, 电源和设备接通 m_ngpo &= ~(0x01); outpw(0x866, m_ngpo); 如果按下 OFF 按钮, 程式发送高信号, 触发电源关闭状态, 而后, 电源和设备断开 m_ngpo = 0x01; outpw(0x866, m_ngpo); Pin Device GPIO0 Light 1 GPIO1 Light 2 GPIO2 Fan 1 GPIO3 Fan 2 GPIO4 Door OnChangeEdit?() 这个函数包含编辑组件, 用于显示温度, 如果温度改变, 自动调用 UpdateData() 函数进行刷新 OnTimer() 这个函数首先获取 GPIO 的 I/O 状态, 并在对话框中显示 ; 然后检测环境状态 ; 接着从串口读取温度, 如果温度适合用户设定条件, 发送按钮消息打开或者关闭 I/O 设备 36 of 46

ReadTemp() 这个函数调用 ReadChar() 从串口读取比特值, 从串口读取的文本格式如下 : 1 0025.13<CR><CF> 1 0025.25<CR><CF> 真实温度的 ASCII 字符串只能通过串口获取, 获取后发送消息到编辑控制组件, 然后更新数据 关于温度传感器的更多资料, 请参考 http://store.qkits.com/moreinfo.cfm/qk145 关于串口通信的更多资料, 请参考 MSDN 37 of 46

测试和调试程式 成功编译后, 程序员可以用 X86 模拟器或者演示盒测试 模拟器测试用户界面是很容易的, 从工具栏中选择 STANDARDSDK_500 Emulator, 按下 Ctrl+F5 编译和运行程式即可 成功编译代码后,eMbedded Visual C++ 会启动模拟器 38 of 46

程式将会传送到模拟器中运行, 如果选用 debug 模式, 就可以设置断点跟踪调试程式 39 of 46

程序员也可以选择 Home_Automation_Kit SDK 编译程式, 在 Home_Automation_Kit Windows CE 平台安装 SDK 后,Home_Automation_Kit 设备会自动出现在工具栏内 上载程式到演示盒前, 选择 Tools -> Configure Platform Manager 选择 Home_Automation_Kit -> Home_Automation_Kit Device, 并且按下 properties 按钮 40 of 46

设置下述图片所示的传输和启动服务器, 或者按下测试按钮检查这些设置 ( 确认 PB 已经上载并在演示盒上已经运行 WinCE 映像和程式 ): 如果测试成功, 按下 Ctrl+F5 编译程式, 然后在演示盒上运行程式 演示盒上运行程式的屏幕快照如下图所示 : 41 of 46

制作发布版映像和程式 演示程式测试成功后, 我们开始为 x86 平台制作发布版程式, 首先编译发布版的 WinCE 映像, 去掉调试支持选项, 发布版的编译选项如下图所示 : 选用上述选项重新编译, 一个小于 10MB 的新 WinCE 映像将会产生在 release 目录 安装映像和程式 假定你已经制作了一个无调试信息的新 WinCE 映像和一个发布版 Demo_App.exe 程式, 参考我们的技术文档 Install Software into ICOP Boards, 将它们拷贝到 DOM, 现在有两个运行 WinCE 的引导方案 : 用 DOS loadcepc.exe 工具和 BIOS boot loader 用 DOS 装载 WinCE 用 DOS 装载 WinCE 是很容易的, 首先制作 DOM DOS 可引导系统, 然后拷贝映像文件和程式到 DOM, 需要的文件如下表所示 : 42 of 46

File Name AUTOEXEC.BAT CONFIG.SYS LOADCEPC.EXE NK.BIN Demo_App.exe Description Using loadcepc.exe to load Windows CE image. Load himem.sys to enable extended memory. DOS utility to load and run Windows CE. Windows CE image. Demo program. 用 BIOS Boot Loader 装载 WinCE 搜索 PB 帮助文档中 x86 bios loader 的相关信息, 就会获取 BIOS boot loader 的详细信息 在用 BIOS boot loader 之前, 有一个 bug 需要修正, 具体的, 打开 \WINCE500\PUBLIC\COMMON\OAK\CSP\X86\BIOSLOADER\ LOADER\fat.h, 修改 READ_BUFFER_LENGTH_MAX 常量 0x4000 为 0x3000, 然后, 重新编译 BIOS loader ( 移动鼠标光标到 BIOSLOADER(excluded from build), 接着按下鼠标右键, 选择 Build Current Project) 格式化你的 DOM, 运行 mkdisk 批处理文件安装 BIOS loader, 然后拷贝 Demo_App.exe 和 WinCE 映像文件 ( 文件名称 NK.BIN) 到 DOM;BIOS boot loader 将会自动装载 nk.bin, 如果映像文件名称不是 nk.bin, 请修改 boot.ini 文件 43 of 46

运行映像 现在, 从 ICOP-6072 主板上去掉 ICOP-6083L1 模块, 然后增加自带 VT6655 无线模块的 ICOP-6083-Mini_PCI, 再运行 WinCE 映像和程式,WinCE 映像和演示程式运行的快照图片如下所示 : 44 of 46

增加桌面快捷方式 在我们的演示盒中不需要增加演示程式的桌面快捷方式, 如果程序员想增加程式的桌面快捷方式, 请遵循如下步 骤 : 1. 拷贝程式 Demo_App.exe 到 \WINCE500\PBWorkspaces\Home_Automation_Kit\WINCE500\ ICOP_Vortex86_50D_x86\OAK\files 2. 在程式 Dmo_App.exe 目录下创建一个文件名称为 Demo_App.lnk 的快捷方式, 该文件包含如下代码 : 21#\Windows\Demo_App.exe 3. 修 改 WINCE500\PBWorkspaces\Home_Automation_Kit\WINCE500\ICOP_Vortex86_50D_x86\OAK\ files\project.bib 文件, 增加演示程式和快捷方式到映像中 FILES ; Name Path Memory Type ; ---------------- ----------------------------------------- ----------- TouchKit.exe $(_FLATRELEASEDIR)\TouchKit.exe NK S Calbration.exe $(_FLATRELEASEDIR)\Calbration.exe NK S DrawTest.exe $(_FLATRELEASEDIR)\DrawTest.exe NK S UsbTouch.dll $(_FLATRELEASEDIR)\UsbTouch.dll NK S Demo_App.exe $(_FLATRELEASEDIR)\Demo_App.exe NK S Demo_App.lnk $(_FLATRELEASEDIR)\Demo_App.lnk NK S 4. 打开 WINCE500\PBWorkspaces\Home_Automation_Kit\WINCE500\ICOP_Vortex86_50D_x86\OAK\ files \project.dat 文件, 增加如下代码 : root:-directory("\windows") Directory("\Windows\Desktop"):-File("Demo_App.lnk", "\windows\demo_app.lnk") 上述步骤完成后, 重新编译 WinCE 内核, 一个新的快捷方式将会出现在桌面上, 点击该快捷方式, 就会启动 Demo_App.exe 程式 自动运行程式 如果程序员想自动运行他的程式, 首先遵循 Add Shortcut on Desktop 同样的步骤, 在第四步, 设置快捷方式到 StartUp 文件夹即可 root:-directory("\windows") Directory("\Windows\StartUp"):-File("Demo_App.lnk", "\windows\demo_app.lnk") 按上述步骤完成后,WinCE 会自动运行 Startup 文件夹内的快捷方式 45 of 46

现在, 我们已经完成了演示盒的开发 本文档的一些步骤和信息, 概要展示了我们的工程师如何制作这个演示盒, 如果你需要更多信息或者帮助, 请联系我们的技术支持 (tech@dmp.com.tw), 对于软件开发我们可以提供有限的支持 参考 Vortex86 BSP 下载 http://www.vortex86.com/os.htm#wince 文档 :Windows CE 开发 http://www.dmp.com.tw/tech/os-wince/wince_development_note.pdf 文档 : 在 Vortex86 系列主板上如何使用 GPIO? http://www.dmp.com.tw/tech/dmp-hw/cpu-vortex86/use_vortex86_gpio.pdf 文档 : 在 ICOP 主板上安装软件 http://www.dmp.com.tw/tech/dmp-hw/disk/install_software_onto_icop_boards.pdf 技术支持 更多技术支持信息, 请参考网站 http://www.dmp.com.tw/tech 或者发送 E-mail 到 tech@dmp.com.tw 46 of 46