Translation

5,680 views
5,542 views

Published on

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,680
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Translation

  1. 1. PW2440嵌入式主板使用手册
  2. 2. 目 录 一 PW2440嵌入式主板介绍 1.1 PW2440嵌入式主板图解与简介 1.2 PW2440嵌入式主板快速使用方法 1.3 PW2440嵌入式主板硬件性能介绍 1.4 PW2440嵌入式主板软件性能介绍 1.5 PW2440嵌入式主板配套光盘目录列表 二PW2440嵌入式主板使用步骤 2.1 PW2440嵌入式主板电源与检测常识 2.2 PW2440嵌入式主板接口连接 2.3 PW2440嵌入式主板启动环境 2.4 烧写Bootloader的步骤(ATBOOT) 2.4.1 JTAG下载板介绍 2.4.2 SJF2440驱动及环境安装 2.4.3 SJF2440.EXE命令 2.4.4拨码开关设置 2.4.5 SJF2440烧写ATBOOT步骤 2.5 PW2440嵌入式主板Bootloader功能介绍(ATBOOT) 2.5.1 ATBOOT简介 2.5.2 DNW工具设置及串口配置 2.5.3 DNW USB驱动安装 2.5.4 如何进入ATBOOT菜单 2.5.5 ATBOOT菜单详细介绍 2.5.6 地址分配 2.6 PW2440嵌入式主板烧写内核步骤(WindowsCE5.0与Linux2.6) 2.6.1 下载光盘WinCE标配内核NK.bin 2.6.2 将NK.BIN下载到内存运行 2.6.3 快速使用WinCE各个接口功能 三WinCE5.0 编译环境的安装 3.1 安装Platform Builder 5.0 (简称PB) 3.2 安装相关补丁 3.3 PB软件工具使用简介 四PW2440嵌入式主板标配WinCE BSP编译 4.1 导入BSP源代码 4.2 设置环境 4.3 添加相关驱动与环境 五 BSP源代码及定制自己的新内核 5.1 BSP源代码结构分析 5.2 增加其它功能方法 5.3 液晶屏参数修改 5.4 添加USB WIFI驱动 5.5 编译的各个功能选择 5.6 导出SDK 六 WinCE5.0 在PW2440上各个功能使用
  3. 3. 6.1 MP4 播放器 6.2 USB 摄像头测试 6.3 Camera 摄像头测试 6.4 SD 卡 6.5 保存文件 6.5 USB HOST 接口 6.6 网络使用 6.7 触摸屏校正 6.8 录音 6.9显示界面旋转 90 度 6.10 GPS 接收器的使用 6.11 USB 同步 6.12 存储管理器 6.13 调整内存空间 6.14 增加启动时个性化 LOGO 6.15 三个串口使用 6.16 按键板功能定义 6.17 手写输入法 6.18 关闭屏幕显示 6.19 GPRS拨号设置方法 6.20 FLASH播放器测试 七 VS2005/2008开发工具安装与使用 7.1 安装方法 7.2 创建Hello World实例 7.3 建立连接 7.4 编译与下载 7.5 导出SDK 八 WinCE常用的功能例程 8.1 WinCE 中如何向 image 中添加文件 8.2 建立 HIVE 注册表 8.3 应用程序中对注册表的编辑 8.4 添加输入法 8.5 删除一个注册表健值 8.6 改变桌面背景图片 8.7 WinCE 中支持多国语言切换 8.8 实现开机后 WINCE 的任务栏为隐藏模式 8.9 应用程序在 WinCE 启动后自动运行 8.10 向 WinCE 内核添加文件 8.11 应用程序在 WinCE 启动后自动运行 8.12 WinCE 配置文件中的路径 8.13 WinCE 字库与内核分离设置 8.14 向 WinCE 的注册表添加其他注册表文件 8.15 WinCE 内核 NK.nb0 大小设置 8.16 WinCE 中如何编译生成 NK.nb0 8.17 WinCE 电源管理 8.18 TCP/MP 源代码编译 8.19 WinCE 挂起和唤醒(suspend/wakeup) 8.20 WinCE 应用程序开发(基于 EVC) 九 PW2440主板Linux2.6.18.2系统快速掌握流程 9.1 Linux2.6 内核系统介绍
  4. 4. 9.2 Linux2.6.18.2 光盘目录介绍 9.3 用 ATBOOT 下载 Linux2.6.18.2 方法 9.4 Linux2.6.18.2 640*480 800*480 分辨率校正方法 9.5 Linux 开发环境(NFS)的快速搭建 9.6 基于 Busybox 的根文件系统制作 9.7 Linux 内核的编译及烧写 9.8 u-boot.bin 启动文件的烧写方法 9.9内核用 UBOOT 方式自动烧写方法 9.10 Linux2.6.18.2 的部分应用例程 十 PW2440主板Linux2.6.18.2系统代码学习教程 10.1 u-boot的学习与编译,UBOOT1.3版本 10.1.1 uboot目录结构 10.1.2 uboot源代码分析 10.1.3 uboot编译环境的安装 10.1.4 uboot编译步骤 10.1.5 uboot的移植方法 10.1.6如何将UBOOT移植到PW2440开发板上 I.修改board目录下的代码 II.修改文件commoncmd_jffs2.c III.修改cpu目录下的代码 IV.修改必要的驱动文件 1.修改网卡驱动 2.修改USB驱动 V.修改文件系统 VI.修改lib_arm目录中的文件 VII.修改/添加头文件 VIII.修改开发板配置文件 X.修改rtc相关代码 XI.修改u-boot目录下的Makefile文件 XII.编译步骤 10.2内核的学习与编译(针对本开发板所配的内核文件SJFF2来直接分析) 1.内核目录结构 2.配置交叉编译工具与开发环境 3.常用内核配置选项分析 4.编译内核文件的步骤 5.移植内核镜像到PW2440开发板运行步骤 10.3 QT图形的开发与编译 1. 配置编译QT图形化界面的开发环境与所需要的库文件 2. 在开发板上实现时钟的QT程序 110.4 AT2440开发板常用接口与例程使用 010.4.1 USB 110.4.2 SD CARD 210.4.3 UART串口 310.4.4 LCD接口对液晶屏的初始化配置及显示调试 410.4.5 按键使用 510.4.6 如何将文件放置到AT2440上运行 610.4.7 IO口驱动与LED灯控制闪烁实验 710.4.8 如何编写一个简单的例子在开发板上运行,如Hello, World的例子
  5. 5. 2 九 仿真器的使用方法 附件一:ASCII码表 附件二:Banyan-U ARM仿真器USB2.0版本 附件三::Linux 基本知识 一 PW2440嵌入式主板介绍 1.1 PW2440嵌入式主板图解与简介 PW2440嵌入式主板是一体式结构方式的,主板是四层板,尺寸为115x108mm。 硬件性能参数: CPU:S3C2440A-40 400MHz SDRAM:64M or 128M,可选,默认是64M。K4S561632两块。 FLASH:64M or 256M or 512M or 1GB,可选,默认是64M NAND FLASH。 Etherne:100/10M DM9000AEP USB HOST:一个USB HOST 1.1 USB DEV:一个USB DEV CAMERA:一个CAM口,支持OV9650,OV9620 130万像素手机类的摄像头,只限WinCE5.0系统使用。 COM口:三个串口,三个三线制。DB9一个是COM1,用于调试。 音频:一个音频输出,一个音频输入。 SD CARD:一个SD CARD座,支持4G SD CARD。 RESET键:一个重启键。 按键:20个按键,配有驱动。 JTAG口:用于烧写启动引导文件使用。 LCD接口:预留一个直接接液晶屏的接口,54PIN FPC座的,标准是LQ035NC111接口。 扩展IO:双排2.0间距的34个IO扩展口。 时钟电池:板上备有时钟电池3V。 GPS接口:板上带有GPS模块接口,TTL信号,接上GPS模块即可当作手持导航仪使用。 电源:DC 5V电源输入,工作电流约0.4A。 尺寸:115*108MM 内存大小切换:支持64M与128M内存的不同线路切换 具体分布如下图:
  6. 6. 图一:PW2440结构图 标配LQ035NC111液晶屏带触摸功能图如下:(320*240分辨率) 键盘板功能图见上面。 高档液晶屏AT056TN52效果图如下:(640*480分辨率) 1.2 PW2440嵌入式主板快速使用方法
  7. 7. PW2440嵌入式主板是微型手持电脑设备,建议选购液晶屏一起,可以方便看到操作系统及使用触 摸屏进行操作。 初次拿到PW2440产品时,请照清单进行核对相关配件,特别注意所配的电源适配器输入电压为交 流220V,输出为直流5V,本产品所使用的电压为直流DC 5V,电源接口是里正外负的接线方式。电压有 效值是4.5~7V,单板工作电流为0.4A之内,配不同的液晶屏电流各不同,建议使用2A的电源。 接上电源,将主板开关打开,即可看到电源指示灯POW亮,如配有相应液晶屏,会在显示屏上看到 启动过程,大概15秒内可进行相应的系统。 此时可使用触摸屏或USB鼠标进行操作,原理与WinXP系统或 PC类的操作系统差不多。 然后可根据自己的需要去测试板上带有的各个接口功能。 1.3 PW2440嵌入式主板硬件性能介绍 1.3.1 以太网接口 板上集成一个100M以太网接口,如果和PC直接相连请用配件中的交叉网线,如果通过交换机或路 由器连到局域网里,请自备一条直连网线。 在使用PW244主板进行开发的过程中,以太网接口可以用来 下载WinCE镜像、Linux内核和根文件系统等。 1.3.2 USB HOST接口 USB HOST接口支持USB1.1协议,可以接U盘(最大8G)、USB鼠标、USB键盘、USB HUB、USB摄 像头、USB无线网卡等等。PW2440特别解决三星原来存在USB HOST不能自动识别USB设备的问题。 1.3.3 USB Device接口 USB Device接口支持USB1.1协议,可以在WinCE下与PC同步(前提是PC上要安装微软提供的同步 软件Activesync与驱动),这样在PC端就可以直接通过UBS电缆和开发板传送数据。 1.3.4 音频输入输出接口 音频输入和输出采用IIS总线的接口标准,音频输入接口可以支持录音,音频输出可以支持各种声 音的播放,支持同时录音放音。 1.3.5 SD卡接口 SD卡接口可以支持4G容量的SD存储卡,即插即用,支持自动识别。 1.3.6 串口 开发板上带有3个串口,3个3线制串口。通过一个标准DB9接口引出一个3线制串口。 一个10针2.0mm 间距双排插针引出了3个串口的所有信号。 DB9中间一个串口COM1是接调试使用。 同时另有一个GPS接口,是从COM0端口直接引出的TTL信号,可以直接接GPS模块。 1.3.7 LCD和触摸屏接口
  8. 8. 图1.3.7 LCD和触摸屏接口 LCD 接口引出了 PW2440主板的 LCD 控制器的信号,可以支持 STN 液晶屏和 TFT 液晶屏,还 引出了 4 线的触摸屏控制信号。同时还带有触摸屏的接口。 1.3.8 摄像头接口 WinCE下的摄像头驱动支持130万像素的OV9650模块,提供的只有WINCE5.0下的驱动源代码,使 用的显示图象窗口软件是CAMTEST.EXE,这个软件没有源代码,是网上公开下载的软件。 1.3.9 GPIO接口
  9. 9. 图2.6 GPIO接口 GPIO接口引出了未使用的I/O信号,用户可以通过GPIO接口方便地扩展各种外部I/O接口设备。 1.3.10 LCD跳线 使用奇美3.5”LCD的跳线是JP3-Q JP2-Q两组。 使用群创5.6”LCD的跳线是JP1 JP4两组。 两种屏的电压不同,Q3位置的IC也不同,请看原理图。 1.3.11 JTAG接口 图2.8 JTAG接口 用户可以JTAG下载头通过JTAG接口来下载程序到NandFlash,由于JTAG下载头下载程序的速度很 慢,所以只适合下载一些像bootloader这样的小程序或ADS编译出来的一些应用程序,操作系统的镜像
  10. 10. 文件不适合通过JTAG下载头来下载,而要通过USB口或以太网接口来下载。 JTAG接口还可以接ARM仿 真器,配合ADS开发环境来调试一些用户程序。 下载u-boot.bin,ATBoot.bin使用JTAG下载头,将配有一条6PIN的线接到J1的座上,请对好1脚 插上开发板的JTAG位置。 开发板与仿真器连接,将JTAG下载头的J3位置四个短接帽全部取下来,即可使用于仿真器的转换使用。 1.3.12 拨码开关 图2.9拨码开关的设置 开发板上有一个四位的拨码开关,OM0和OM1的配置如下: OM[1:0] 启动方式 00: Nand boot ——NandFlash启动 01: Halfword(16-bit) ——NorFlash启动 10: Word(32-bit) 11: Test Mode NADN_WP信号是NandFlash的写保护信号,Nand_CON是NandFlash的配置信号。 对于U5 位置的NAND FLASH型号不同,SW2拨码开关设置也不同,具体区别如下: U5型号 容量 ON方向 OFF方向 K9F1208U 64M 1、2、4 3
  11. 11. K9F2G08U 256M 1、2 3、4 K9F4G08U 512M 1、2 3、4 K9K8G08U 1GB 1、2 3、4 以上型号的只有我们开发的ATBOOT才能支持所有型号的FLASH,建议使用我们独有的 ATBOOT作为首选。 UBOOT对大页面的256M NAND FLASH以上的版本己不支持,如果选择大页面的FLASH 只能使用我们的ATBOOT作为Bootloader。如果你需要使用UBOOT,请使用K9F1208的 64M NAND FLASH. 2.2.13触摸屏接口 有一个独立的触摸屏接口,一个是1.0间距4PIN的FPC座接口。 2.2.14 内存的选择,板上的线路己支持64M与128M不同内存的选择。但不会同时提供两种 代码,128M内存的代码为选购。 采用两块32M的SDRAM IC焊R84,R85 采用两块64M的SDRAM IC焊R83,R86 12.2.15 其它按键 键盘接口:有20个按键,WINCE提供相关驱动。 功能分别为: S1 1 S2 2 S3 3 S4 向左 S5 向右 S6 4 S7 5 S8 6 S9 向上 S10 向下 S11 7 S12 8 S13 9 S14 - S15 + S16 菜单 S17 0 S18 回车 S19 * S20 HOME Linux的驱动只是得到一个值,没有相应的功能定义。 1.4 PW2440嵌入式主板软件性能介绍 1 配有 Linux2.6.18.2 版本(QT:2.3.10)、Wince5.0 版本(真正5.0版本结构)的系统,提供相 应系统源代码; 2 LCD 液晶驱动真彩屏分别有:可通过驱动板去接各种小分辨率的液晶屏; 1.4.1 WINCE5.0 软件功能介绍: 1 支持奇美3.5”TFT LCD及群创5.6”TFT LCD显示输出,带有触摸屏功能。 2 提供 USB 无线网卡驱动、USB 200 万像素摄像头驱动。(注:此部分只提供驱动与 测试 DEMO,没有源代码;只负责设备能正常使用,不负责二次开发)
  12. 12. 3 三个串口可直接使用,COM0 己支持 GPS 接收器/GPRS使用,特别提供 USB 下载 方法,非常适合做产品者使用。 4 具有时钟、IP 地址、PC 同步选项修改后断电可保存的注册表问题;增加数据保存区 ResidentFlash,断电后数据不会掉失。国内其它厂家的同类产品很少有提供这部分功能。 5 增加全新 ATBOOT.bin 的 USB 自动下载功能,增加系统分区功能。 6 增加 BSP 中个性 LOGO 显示,方法简单容易,可以动手制作自己的 LOGO。 7 音频支持放音与录音,可同时进行放录功能。 8 USB HOST 支持一个USB口使用,己增加启动自动识别设备功能。 9 USB DEV 支持 USB 下载系统功能。 10 OV9650 130万像素摄像头功能,驱动提供源代码,显示窗口只有可执行程序。 11 网口支持 10/100M 接口,具有过滤功能,不需要在同一局域网中手动分配 MAC。 12 SD 4G卡即插即用。 13 中文手写输入法。 14 20个按键驱动。 15 FLASH播放软件测试版。 16 关闭屏幕功能。 17 MP3/MP4播放器。 18 GPS导航软件可直接运行。 19 GPRS功能。 1.4.2 Linux2.6.18.2 软件功能介绍 1 己推出通过 ATBOOT USB 口方式下载 LINUX2.6 内核到 Nand flash 的启动方法 (可自动跳过 FLASH坏道功能)。 2 音频支持放音录音功能。 3 USB HOST 支持外接 USB HUB 扩展,即插即用。 4 USB DEV 支持 USB 下载系统功能。 5 网口支持 10/100M 接口,具有过滤功能,不需要在同一局域网中手动分配 MAC。 6 SD 卡即插即可挂用。 7 20个按键提供测试驱动。 8 GPS/GPRS例程使用 9 Mplayer播放器使用 10 专门撰写关于代码等学习例程 11 各种应用例程 1.5 PW2440嵌入式主板配套光盘目录列表 配有两张DVD光盘,DVD1为PW2440主板相应的内容,DVD2为VS2005,PB开发工具及补丁。 DVD1 DVD2 ATBOOT 工具软件 影音测试片 WINCE5.0评估版 段 LCD资料 库文件 原理图 VS2005 linux2.6源代码 三星测试程 ADS1.2软件
  13. 13. 与内核 序 uboot1.3源代码 实验例程 GPS导航软件 USB无线网卡 使用手册 WinCE5 源 代 码 与 内 芯片手册 核 二PW2440嵌入式主板使用步骤 2.1 PW2440嵌入式主板电源与检测常识 毕竟我们提供的这类产品属于半成品,以便用户学习参考的,对此也需要了解下基本 的操作及检测方法。 如遇到不正常启动,请准备一个万用表,地线可接到固定孔或其它地线位置,然后用 红色正极去测试U11,U12的电源IC电压。U11是1084,是负责将5V电压降为3.3V供电。U12 是1085,负责将3.3V电压降为1.35V供给CPU等。 测试点是TP1:5V TP2:3.3V TP3:1.35V 如果TP1没有5V电压,代表电源输入不正常,不正确供电,短路。 如果TP2没有3.3V,而TP1电压正常,可能是U11损坏或短路,虚焊。 如果TP3没有1.35V,而TP1,TP2电压正常,则是U12损坏,不能正常供电给CPU,造成系 统不能启动或找不到CPU,内存等现象。 注:有些用户提出三星公司标准提供的原理图是CPU的电压为1.2V,而我们提供的是 1.35V,这个是因为不同的频率而变动的。设计的要求不同而己。 注意:不能用手直接去摸主板表面的元件,以免因静电而将 FLASH里的程序清除或造成 板短路,特别是冬天或北方地区静电特别大的环境下。 2.2 PW2440嵌入式主板接口连接 2.2.1 串口 PW2440使用的是交叉串口线,所谓交叉,即时串口的第2,3两脚互换,两头均为母座 (即孔座)。实际使用的串口线只是2(RX),3(TX),5(GND)三根线,串口线的脚顺序 请看母座上的字体分区。 将交叉串口线一头接到PC主机的串口上,另一头接到PW2440主板是COM1串口上 (板上唯一一个DB9串口座),PW2440所使用的波特率为115200,下图的COM Port是指 PC主机上的串口,并不是PW2440上的串口。一般台式PC电脑的串口是COM1,如果是使 用USB TO COM的这类转换线,需要自己去查下所配的串口位置。
  14. 14. 2.2.2 USB下载线 PW2440使用的USB线,其中一头为接到PC主机的标准USB头,另一头是T型的数码相机 类接口。不过有些数码相机的线并不适合使用,因为各种线的定义不同。 将USB下载线接到PC主机的USB口,另一头T型的接在PW2440的USB DEV位置,同时需要 安装DNW 的驱动,详情查看下面相关的介绍。 2.3 PW2440嵌入式主板启动环境 将上述三点介绍的电源,串口线,USB线连接好后,打开DNW.EXE工具,设置好串口的 参数,通电后即可从DNW窗口中看到板的启动信息,同时液晶屏上也有对应的图形界面显 示。 2.4 烧写Bootloader的步骤(ATBOOT) 2.4.1 JTAG下载板介绍 JTAG下载板是一款简易的下载工具,可以通过并口将BOOTLOADER文件下载到FLASH上。 不过这种方式下载速度慢,偶然还不成功,优点是成本低,简单。 板上的25针并口公头,接到PC主机的并口(打印口),同时需要安装相应的驱动,见 下面介绍。 板上J1的6针配有相应的线,接到PW2440 主板上的JTAG口上,方向需要与白色座的卡 位一一对应。 板上J3是4个短接帽,功能是为两用,如果这四个短接帽都套上,即是使用于通过并 口下载BOOTLOADER文件到PW2440上的。 如果这四个短接帽取下来,即可用J2接到仿真器的接口上,J3接到PW2440主板的JTAG 口上,此时只作转换,即20PIN转为6PIN的方式用于仿真器使用。
  15. 15. 2.4.2 SJF2440驱动及环境安装 位置:使用 SJF2440 下载板需要先安装其驱动,驱动路径:光盘 工具软件GIVEIO。 SJF2440.exe 要 在 WindowsNT/2000/XP 上 直 接 把 并 口 作 为 IO 口 访 问 , 需 要 安 装 GIVEIO.SYS, 下面以WindowsXP 为例介绍如何安装: 2.4.2.1以 administrator 身份登录系统。 2.4.2.2复制 giveio.sys 到 C:WINDOWSsystem32drivers的目录下。 2.4.2.3打开"控制面板", 选择"添加/删除硬件" 。 (注:需要切换到经典视图 才出现"添加 /删除硬件"选项) 2.4.2.4 选择下一步
  16. 16. 2.4.2.5 选择己连接硬件,下一步 2.4.2.6 选择“添加新的硬件设备”,下一步
  17. 17. 2.4.2.7 选择“安装我手动从列表选择的硬件(高级)”,下一步 2.4.2.8 选择类型为“端口(COM 和 LPT)”,下一步
  18. 18. 2.4.2.9 选择“从磁盘安装(H)…”,在弹出的窗口中选择 GIVEIO.inf。 2.4.2.10 选择'浏览...',找到 GIVEIO.inf 所在的位置
  19. 19. 2.4.2.11 添加成功后,会出现下列型号选择,然后下一步 2.4.2.12 两次下一步后,会弹出确认窗口,选择“仍然继续”
  20. 20. 2.4.2.13 按照提示操作直到安装完毕 2.4.2.14 安装是否成功,请到“系统属性--设备管理器--端口”中,展开+,会看 到有 giveio(COMx),x代表串口多少。 2.4.3 SJF2440.EXE命令 下载Bootloader,即ATBOOT.BIN或UBOOT.BIN的命令如下: Sjf2440 /f:atboot.bin 注意atboot.bin在光盘相应的目录中,后面还带有相关的参数,如atboot-35.bin, 在上述命令中也必须将整个文件名全部写上才可以的。 其中“/f:”并不是代表F盘中的意思,而且一个命令。请注意不要随意更改为c: or d:等盘符。 见下图1的位置。 注:本文所配的图与光盘的sjf2440.exe显示不一定完全相同,对于64M 内存使用的 sjf2440.exe就没有2G08/4G08等这个选项,请根据自己所选购的FLASH类型不同而选择相 应的下载。 如果是使用K9F2G08/K9F4G08/K9K8G08的FLASH请选择2进行烧写。
  21. 21. 2.4.4拨码开关设置 对于U5 位置的NAND FLASH型号不同,SW2拨码开关设置也不同,具体区别如下: U5(Nand Flash)型号 容量 ON方向 OFF方向 K9F1208U 64M 1、2、4 3 K9F2G08U 256M 1、2 3、4 K9F4G08U 512M 1、2 3、4 K9K8G08U 1GB 1、2 3、4 以上型号的只有我们开发的ATBOOT才能支持所有型号的FLASH,建议使用我们独有的 ATBOOT作为首选。 UBOOT对大页面的256M NAND FLASH以上的版本己不支持,如果选择大页面的FLASH 只能使用我们的ATBOOT作为Bootloader。如果你需要使用UBOOT,请使用K9F1208的 64M NAND FLASH. 如果不是更换FLASH型号,默认下我们出厂时己设置好SW2的位置了,请不要改动。 2.4.5 SJF2440烧写ATBOOT步骤 注意:此部分是在PC电脑主机上进行操作,相关述语也是windowXP的内容。 硬件连接: 将并口线一头接到 PC 主机的打印口(并口),另一头接到 JTAG 下载板上。JTAG 下 载板上的 J1 位置是6PIN 的接口,使用我们配的白色 6PIN 线按方面一头接上,另一头 接在开发板上的 JTAG 口。请注意此条的1 脚要一一对应。 软件位置: 将光盘中的sjf2440.exe (位置:光盘/工具软件/) Atboot.bin (位置:光盘/boot/ 分别有不同液晶屏的版本,注意选择。) 复制到PC主机硬盘的目录下,如新建一个PW2440文件夹,将这两个文件放在一起, 注意前面不能有中文的路径。 从开始――运行中输入cmd,进入命令提示符的窗口中。如下图:
  22. 22. 2.4.5.1 打开PW2440主板的电源,进入ATBOOT.BIN的路径,如下图 2.4.5.2 输入sjf2440 /f:atboot-35.bin的命令,见下图1的位置。回车后输入下列信息。
  23. 23. 2.4.5.3 在上图2的位置可以看到检测到CPU的ID,如提示没发现CPU,请检查JTAG板的 6PIN排线是否接上或有误,同时请检查电源是否打开,POW灯是否亮。 2.4.5.4 在上图中看到有一系列菜单,根据NAND FLASH型号不同,选择相应的项。 如是64M FLASH,表面字是K9F1208,对应的是选择0:K9S1208。见上图3的位置。 如是大页面的FLASH,型号见上面的表格介绍,即可选择2:K9F2G08/4G08/8G08 prog,即 256M,512M,1GB的NAND FLASH就选择此项。 2.4.5.5 上图选择0后,再出现下图的相关菜单。 以上选择中全部是0,一直回车后即可进行烧录ATBOOT到NAND FLASH上。
  24. 24. 注意上图中的2位置,如果FLASH焊接不好,或者质量不好,此时会检测不到FLASH的ID的, 就会提示没发现FLASH等,请注意分析。 2.4.5.6 上图中4的位置输入0后,即代表将ATBOOT.BIN烧录到FLASH的0块起始位置。下图 是正在进行写入过程,请等待完成的提示。 2.4.5.7 见上图输入2位置的信息后,代表本次己烧录完成,选择2:Exit退出即完成 ATBOOT.BIN的烧录。此时重启PW2440主板的电源即可从液晶屏上看到显示的色彩图。 如重启电源后没看到启动显示或信息,可能是烧写不成功,需要重新再来一次。 另外如有烧写不成功的原因在于SW2拨码开关没有设置正确,导致不能将ATBOOT.BIN写入 到相应的FLASH中。关于SW2的设置请查看上面的相关介绍。 2.5 PW2440嵌入式主板Bootloader功能介绍(ATBOOT) 2.5.1 ATBOOT简介 ATBOOT的名字是分别由Avantech与Bootloader简化而来,是对嵌入式主板的一种新的 下载方式的程式,改变三星传统的EBOOT由网络下载的方式.ATBOOT是采用USB DEV口下载, 速度快,稳定,不受网络性能的限制。 ATBOOT经过我们几年的简化及增加了大量的新功能,分不同版本去支持大内存,大页 面的FLASH功能。 这个是国内同行业中首家推出如此强大的Bootloader新程式,同时ATBOOT 的稳定性对所引导的WINCE或LINUX系统起到很大的作用。此类主板有些厂家提供的系统不 稳定,或经常死机,或BIOS信息掉失,都是与Bootloader的稳定性有关的。 2.5.2 DNW工具设置及串口配置 DNW.EXE工具在光盘――工具软件 文件夹中。 直接运行DNW.EXE显示的窗口如下: 下图的菜单Configuration—Options中可选择波特率,串口,还有地址。 PW2440所要使用的波特率为115200,串口根本PC电脑主机的来选择,地址不需要填写。 Serial Port—Connect是将PC的串口与PW2440串口连接
  25. 25. USB Port—Transmit是传递下载文件的选项 2.5.3 DNW USB驱动安装 2.5.3.1将配有的USB 电缆线(PC 端为 USB host,PW2440 端为 USB Device)照要 求连接好。 进入到ATBOOT的菜单后,如果以前没有安装过DNW的驱动,此时PC电脑中会检测到有 新的硬件设备。如下图:
  26. 26. 注:只有进入上图的菜单才会提示下图显示的发现新硬件,除非你以前安装过此驱动 就不会提示,或者USB口存在错误也不会提示,请看PC主机的系统属性――硬件设备中 查找。 2.5.3.2 DNW 的 USB 驱动路径:光盘 工具软件USB 驱动使用 DNW 的 USB 驱 动。 请将“使用 DNW 的 USB 驱动/secbulk.sys 复制到 windows/system32/driver 目录下”。 2.5.3.2 在弹出的窗口中,选择下面一项 否,暂时不(T), 然后按 下一步。
  27. 27. 2.5.3.4 按下图选择 从列表或指定位置安装(高级),然后下一步。 2.5.3.5从浏览中选择 DNW 的 USB 驱动 所在位置,然后下一步。见下面两个图:
  28. 28. 2.5.3.6在出现在驱动列表中,选择 secbulk.inf 此项,然后 下一步,见下图: 2.5.3.7此时弹出是否继续的窗口,选择 仍然继续,见下图。
  29. 29. 2.5.3.8有时会出现自动找不到 secbulk.sys 的文件,此时会弹出窗口,手动选择此文件的位置, 见下图: 2.5.3.9上图 按确定后,出现下面窗口:
  30. 30. 2.5.3.10从浏览中选择 secbulk.sys 所在位置(此文件位于“使用 DNW 的 USB 驱动”中)。 2.5.3.11打开“使用 DNW 的 USB 驱动>>secbulk.sys”。
  31. 31. 2.5.3.12从上图中 确定 后,会继续完成驱动的安装。 此时 USB 的驱动安装完成,从上面介绍的[USB:OK]可以确定安装成功。 如果 USB 电缆连接经常检测不了,请插拨多几次,有时接触不良会导致这个问题的。同时由于三星提 供的这个驱动,有时会导致电脑蓝屏,这个是不可避免的。只要不在PW2440主板开机情况下插拨,就 会减少电脑蓝屏的次数。 特别提示一: 如果没有安装过 DNW 下的 USB 驱动,同时需要在下列两种情况下操作,才会在电脑的任务栏中,
  32. 32. 出现找到新硬件设备的提示,然后按下面的步骤进行安装驱动。 A:第一次自己烧写完 ATBOOT 时,启动时会自动停止在下图的“USB host is not connected yet.”, 此时按下键盘的空格键即可进入菜单选项,同时如果 USB 线己连接在开发板与 PC 主机,就会提示发 现新硬件。 B:如果你的开发板在我们出厂时己烧好系统,包括 WINCE5.0,LINUX2.6,此时打开开发板的电源, 启动时不会自动进入到下面菜单选项,操作方法需要先“ 按着键盘的空格键一直不放开,再打开开发 板的电源,直到你在 DNW 窗口中看到下列菜单选项时,即可放开空格键”。此时 USB 线连接好的情 况下,才会提示发现新硬件。 特别提示二:如果你的电脑此驱动没有安装成功,但同时又没有上图提示,请到 windows/system32/driver,删除你己有的 secbulk.sys,再将光盘的 secbulk.sys 复制到此目录。在插入 USB 线的同时将设备管理器中的通用串行总线控制器列表中有黄色警告叹号的驱动删除,再重新插入 USB 线即可发现新硬件。 2.5.4 如何进入ATBOOT菜单 方法一:PW2440在我们出厂时己烧录好ATBOOT,在这种情况下,你需要设置上面的DNW及串口线连 接好,打开电源,从DNW中即可看到启动的信息输出。如下图1的位置: 在上图1的位置只有三秒时间内,必须快速按下键盘的空格键或回车键,进入到ATBOOT的菜单中。 或者先按着键盘的空格键或回车键,再打开PW2440主板的电源,也可以进入到ATBOOT的菜单中。菜单显 示如下图3的位置:
  33. 33. 方法二:第一次自己烧写完 ATBOOT 时,启动时会自动停止在下图的“USB host is not connected yet.”,此时按下键盘的空格键即可进入菜单选项,如上图3的位置。 2.5.5 ATBOOT菜单详细介绍 新增内容:增加 LINUX 内核 USB 口下载方式,增加自动跳过 NAND FLASH 坏道功能。增 加全部清除内存功能,增加下载到 SDRAM 的调试功能。系统更稳定。
  34. 34. 2.5.5.1 功能简介 ###### Select Menu ###### [0] Download & run to SDRAM WinCE5.0 //下载 NK.BIN 到 SDRAM 中运行,断电后不保存 [1] Download Only //手动下载 NK.BIN [2] Write File to NAND Flash //将 NK.BIN 写入 NAND FLASH,手动 [3] Erase NAND Flash Partition //擦除 NAND FLASH,注意会删除 ATBOOT [4] Auto Flash WinCE5.0 //自动引导下载 NK.BIN,是我们使用的下载方式 [5] MemoryTest //内存测试,不建议自己使用 [6] Config parameters //参数配置,不建议自己使用 [7] Start OS //手动启动当前所下载系统 [8] Auto Flash Linux2.6 //自动引导下载 Linux2.6 内核与文件系统 2.5.5.2 在此我们只介绍以下四个选项: [0] Download & run to SDRAM WinCE5.0 //下载 NK.BIN 到 SDRAM 中运行,断电后不保存 [4] Auto Flash WinCE5.0 //自动引导下载 NK.BIN,是我们使用的下载方式 [8] Auto Flash Linux2.6 //自动引导下载 Linux2.6 内核与文件系统 1)选择 0,[0] Download & run to SDRAM WinCE5.0 ,在调试编译好的 NK.BIN 时,为了测试是 否正常但又不想经常去擦除 FLASH,减少 FLASH 的寿命,同时此项不会擦除原来所烧录好的内 核,可以选择这项。 输入 0,会出现: Download&Run is selected. USB host is connected. Waiting a download. 然后从 DNW 中的 USB Port 选择你所要下载的 NK.BIN 文件即可,接着系统会自动下载,解压, 运行WINCE5.0 系统。注意此功能对 LINUX2.6 内核不支持。 2)选择 4,[4] Auto Flash WinCE5.0,此功能我们己设置好自动写入的地址,分配方式等。子菜单
  35. 35. 包括三个选项的内容: 0 : offset 0x0 , size 0x60000 [ATBOOT] //可在线通过 USB 口更新 ATBOOT.BIN 1 : offset 0x60000 , size 0x2300000 [WINCE] //下载 NK.BIN 2 : offset 0x2360000 , size 0x1ca0000 [USER] //用户使用区,需要与 SMFLASH 驱动配合使用 3)选择 8,[8] Auto Flash Linux2.6,此功能我们己设置好自动写入的地址,分配方式等。 子菜单包 括三个选项的内容: 0 : offset 0x0 , size 0x60000 [ATBOOT] //可在线通过 USB 口更新 ATBOOT.BIN,与 4 项相 同。 1 : offset 0x60000 , size 0x1a0000 [KERNEL] //下载 zimage 的内核,分不同分辨率版本的内核 2 : offset 0x200000 , size 0x3500000 [ROOTFS] //下载 rootfs.img 文件系统 2.5.5.3 选择 [6] Config parameters 参数配置,子菜单内容如下图: 0:内部启动标识,区别是Linux还是CE启动 1:cpu频率选择,这里无作用 2:启动延迟时间 3:atboot输出到串口X 4:波特率 5:启动的机器号,主要用于Linux启动识别 6:启动地址,内部使用 7:文件系统分区选择,无使用 8:Linux启动的串口输出,无使用 9:ce的启动地址,自动设置 10:启动读取的数据长度 11:内存大小 12:devfs,无使用 13:无使用 14:linux的启动命令行,暂无使用 15:退出
  36. 36. 2.5.6 地址分配 CE的地址分配如下: ATBOOT 0~0x60000 WINCE 0x60000~0x02300000 USER 0x02360000~ 0x1ca0000 下载到内存运行的地址是:0x30200000 LINUX的地址分配如下: ATBOOT 0~0x60000 KERNEL 0x60000 ~ 0x1a0000 ROOTFS 0x200000~0x3500000 2.5.7 通过USB口更新ATBOOT 如果第一次使用 JTAG 下载成功 ATBOOT,以后需要更新或重烧 ATBOOT.BIN,可以通过 USB 下载方式快速更新不同分辨率的 ATBOOT.BIN 文件。 按空格键 进入下面菜单时,选择 4([4] Auto Flash),再选择 0 (0 : offset 0x0 , size 0x60000 [ATBOOT]),然后确定选择 Y,即可通过 USB 口更新 ATBOOT.BIN。 注:4 与 8 项的“0 : offset 0x0 , size 0x60000 [ATBOOT]”这项功能是一样的,选择那个都可以更 新。 选择 4([4] Auto Flash WinCE)出现下列三个选项 再选择 0 (0 : offset 0x0 , size 0x60000 [ATBOOT]) Are you sure to erase nand flash from page 0x0, block count 0x10 ? [y/n] 然后确定选择 Y,即可象下载 NK.BIN 方法一样,通过 USB Port 菜单,更新 ATBOOT.BIN。 USB host is connected. Waiting a download. 以上三步见下图的1,2,3三个位置显示: 通过 USB Port—Transmit。
  37. 37. 打开所要升级的 ATBOOT.BIN 如有时USB口接触不良或者因为三星DNW的驱动影响,会提示下图的错误的,此时需要试多几次即可 打开上图的窗口。注意不要再按任何键,以免又进入到菜单中重来。
  38. 38. 升级成功,内容如下: 上图的四个位置注释如下: 1是下载的地址与文件大小 2是检查下载完后的文件大小是否与1的显示一致 3是显示NAND FLASH的ID数值 4是代表己下载成功。
  39. 39. 注意:有时会更新失败,但不要断电或重启,继续按空格键去弹出菜单,再下载即可。 如果全部失败后 连启动信息都没有的话,就只能用 JTAG 下载板去重烧 ATBOOT.BIN,方法如上述介绍。 2.6 PW2440嵌入式主板烧写内核步骤(WindowsCE5.0) 2.6.1 下载光盘WinCE标配内核NK.bin 将内核下载到 Nand Flash 中固化了,断电后不会掉失,启动后系统运行很稳定,这正是其优点。 2.6.1.1 PW2440 开发板通电后在输出“*”时要及时按空格键才能启动 ATBOOT 的菜单功能,否 则会直接启动 WINCE5.0 或 LINUX2.6 系统。第一次烧写 ATBOOT 后系统启动自动进入到下载窗口, 此时按空格键即可进入菜单选项。 ATBOOT 启动后如下图所示: 2.6.1.2 从下图中,选择“4”后即出现下图分区类型,如下图1位置 0 分区是分别保存 ATBOOT,由于我们是采用 JTAG 方法分别烧写到相应的分区,此处不需要进行操 作。 如果你配有仿真器,可以通过仿真器进行不同的方法烧到此分区,在此不介绍具体的方法。 1 分区是下载 WINCE5.0 的内核 NK 文件保存区。 2 分区是用户自定义数据区,在 BSP 系统中己添加了此功能,在第一次启动系统时将会停止5分钟时 间进行分区处理,进入到 CE 界面后,在 WINDOWS 目录中会出现此分区。 2.6.1.3 在分区的菜单中选择1,用于下载NK.BIN文件,如下图2的位置。 2.6.1.4 在提示中输入Y,即开始进行格式化所在分区。 2.6.1.5 格式化完后等待下载NK.BIN文件。
  40. 40. 2.6.1.6 通过USB Port—Transmit打开内核所在的位置。 2.6.1.7 选择对应版本的内核NK.BIN
  41. 41. 注:所有NK后面会带有-2C,-3C的标识,代表不同的串口,-2C代表COM1不释放,只有COM0,COM2可以使 用,COM1作系统调试占用。 -3C代表COM1也释放出来,三个串口均可使用。 此功能目录只有我公司的产品提供,其它同类产品没有此功能。 2.6.1.8 下载过程,选择完后整个过程将会交由ATBOOT自动处理,从下载到解压,写入FLASH整个过程 大概是三分钟,请注意不要关闭PW2440主板的电源。 2.6.1.9 下图为己下载完成,正在由ATBOOT区别所下载的内核信息,以分清是CE还是LINUX的版本,会 停留3秒。
  42. 42. 2.6.1.10 开始将NK.BIN进行解压。见下图1位置的信息。 2.6.1.11 将NK解压后开始写入FLASH进行固化。
  43. 43. 上图完成固化到FLASH后,返回到菜单中。 此时将开发板重启即可进入到看到液晶屏上的启动窗口。 2.6.1.12 整过重启的过程从DNW中输出信息如下几个图片的介绍:
  44. 44. 上图2位置是ATBOOT启动过程;3位置是内存部分,4位置是FLASH部分。 此图中如果PW2440主板是第一次下载,将会根据NAND FLASH的容量不同,进行低格式化操作。此时会停 留在如下位置:
  45. 45. “FMD_OEMIoControl: unrecognized IOCTL (0x71c24).” 一般64M的FLASH格式化时间只需要几十秒,。 如果是256M FLASH将会进行格式化5分钟,512M FLASH需要15分钟,1GB FLASH将需要30分钟的格式化 时间。 注意:不要关闭电源,不要以为是主板死机了,第一次停留是正常的。 以后再重启就不需要停留在此等 待了。 以上图主要是FLASH,IIC,DM9000(网卡),Camera几部分的启动信息输出。上图画有红线的部分是没检 测到摄像头,如果接有摄像头OV9650等系列型号,将会显示在此位置的。 以上代表整个启动过程完成了,时间大概是18秒。 如果需要启动过程更快,则需要清理不必使用的驱动,以让系统不检测这些接口,将会启动得更快的。 2.6.2 将NK.BIN下载到内存运行 从 ATBOOT v3.02 起我们己完善了将 NK.bin 只下载到 SDRAM 调试的功能,方便各位在调试 NK 时,不需要写入到 NAND Flash 中,减少对 NAND Flash 的擦除,提高其使用寿命,同时缩短了 开发者的调试时间。 下载到 SDRAM 中运行的内核系统,不会对己固化好的内核造成冲突,也不会删除固化好的内核系统 的,但在 SDRAM 中运行的系统,在断电或重启后就掉失了,不会保存你所设置的内容,只方便调试 使用。
  46. 46. 2.6.2.1 首先烧好 ATBOOT.BIN 后,打开电源马上按空格键进入下面窗口。选择 0。 2.6.2.2通过 USB Port>>Transmit 选择 NK.bin 下载 2.6.2.3 下载完后系统在判断所下载的内核类型,因为从版本 v4.02 增加了 WINCE 与 LINUX 两 个系统的下载方式,比原来的多一个系统,所以多了一步验证方式。
  47. 47. 2.6.2.4 自动对 NK.BIN 进行解压,然后再写入到FLASH,整个过程与下载到NAND FLASH一样。 2.6.2.5 随后就进入到 WinCE5.0 界面,启动完成的内容与2.6.1.12所介绍的图一样。 2.6.2.6 如果下载的内核是带-3C的,刚在整个启动过程中,在下面位置就释放串口,COM1不再输出任 何信息了。下图1的位置。
  48. 48. 2.6.3 快速使用WinCE各个接口功能 2.6.3.1 USB 摄像头测试 采用中星微 301 系列摄象头驱动程序,最高支持 200 万有效像素,速度与清晰率非常好,可与 PC 常用 的 设 备 效 果 相 比 。 驱 动 己 添 加 到 BSP 包 里 , 插 入USB摄 像 头 后 , 进 入 “ 我 的 设 备 - -Windows—Testzc030x”,打开 Testzc030x,会提示找到 1 个设备,按 OK 即可出现图像窗口。 本程序采用第三方驱动与测试程序,只有 DLL驱动,不提供源代码等,需要咨询注册与购买请看 说明中第三方的资料与介绍。 2.6.3.2 Camera 摄像头测试 WinCE 下的摄像头驱动支持 130素的 OV9650/ov9620 模块,如用户需要配置其它型号的摄像头模 块,请自行修改相关驱动程序。 此部分的测试程序只对接口验证是否有效,对于所看到的测试效果不佳 等不负责。同时并没有这部分相关的源代码提供,只提供相关驱动作参考使用。 PW2440 开 发 板 提 供 这 个 接 口 , 在 WINCE 系 统 中 也 添 加 了 这 个 OV7660 的 驱 动 , 在WINDOWS/CameraTEST.exe 的测试 DEMO,可以用来测试摄像头与接口是否正常。但 DEMO 所看到的效果中比较差的,并且只能看图,不能抓图,保存等。没有此部分源代码提供。 2.6.3.3 SD 卡 WINCE5.0 支持 SD 卡即插即用,插入 SD 卡后,会在“我的设备--Windows”找到“Storage Card”SD 卡文件夹。 目前支持4G 容量,更大的容量需要自己修改文件系统,我们暂不提供此项服务。 2.6.3.4 保存文件 在“我的设备--Windows”找到“ResidentFlash”,将你的文件资料放在此目录下,可以永久保存, 断电后数据不会掉失。如果你要将程序放在 Windows 目录下,那就需要在编译时将你的程序添加到 BSP 中一起编译。
  49. 49. 2.6.3.5 USB HOST 接口 支持 USB 鼠标、 USB 键盘与 U 盘等设备即插即用。 USB 是 1.1,有些 USB2.0 设备有可能不支持。 2.6.3.6 网络使用 进入“我的设备――控制面板――网络和拨号连接”,打开“DM9CE1”进行设置 IP 地址、名称 服务器等参数,即可登录网络。此为 10/100M 的网卡。 上网需要设置 DNS,中国电信的 DNS 一般为 202.96.128.166.或自动搜索。 WINCE5.0 支持局域网方式上网,其它方式如 ADSL 拨号上网暂不支持。同时支持 USB 无线网卡 上网方式。 2.6.3.7 触摸屏校正 进入“我的设备――控制面板――笔针”,可重新校正触摸屏,并可保存。 触摸屏的参数在注册表中可以查看到,在“我的设备--Windows――regedit”,打开注册表,在 “ My Device――HKEY_LOCAL_MACHINE――HARDWARE—DEVICEMAP-- TOUCH”,CalibrationData 的 Data 的值就是触摸屏参数。 在 PB 中 Workspace——ParameterView――platform.reg,双击打开代码,在下面内容可以修改后 再Make Rum-Time Image. [HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH] "MaxCalError"=dword:500 ;800*480 "CalibrationData"="486,293 151,529 811,530 803,61 140,58 " 2.6.3.8 录音 在“我的设备--Windows――recorder”,通过话筒插入 MIC 音频录音口,点 recorder 窗口的 红色按钮,即可开始录音。支持同时录音,放音。 2.6.3.9 手写输入法 在任务栏的右下角可以选择手写输入法,用触摸屏或鼠标可以进行写中文字体输入,识别率较高。 不过与触摸屏的质量有关,如果质量差些的,写的字笔画不顺,识别率不高。 2.6.4 下载光盘Linux标配内核及文件系统 2.6.5 快速使用Linux各个接口功能 三WinCE5.0 编译环境的安装 3.1 安装Platform Builder 5.0 (简称PB) 将DVD光盘中的wince5.0评估版复制到硬盘上,请先安装dotnetfx,然后双击Microsoft Windows CE 5.0.msi安装wince5.0。这样就不会提示需要插入第二张CD的错误问题。 路径:DVD 光盘wince5.0 评估版。可试用 120 天,此涉及到微软的版权注册问题,我们只提供试 用版方便各位免下载而己,请使用者向微软相关部分注册使用,对此所涉及的所有责任与我们没 任何关系。 在安装过程中,注意下面两个内容的选择,其它都是默认的下一步。
  50. 50. 上图选择Custom(Tools and OS)。 上图窗口必须选择添加ARMV4I,因为PW2440的BSP是在此项下编译的。 3.2 安装相关补丁 安装完PB后,需要进行相关的升级,在光盘中的“wince5.0升级包”将四个升级包全部打上补丁 安装完成。 其中“ WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi”是.NET Compact Framework 2.0 及 SD卡4GB的补丁,如果没有添加到这两个,BSP编译时会出错。 3.3 PB软件工具使用简介 3.3.1 PB窗口介绍 运行PB的窗口结构图如下:
  51. 51. 上图分为四部分,左为解决方案管理器,中间为代码编辑器,右为Catalog窗口,下面为输出信息窗口。 3.3.2 Catalog窗口是添加相关的驱动,具体请看第五点中的相关介绍与添加方法 3.3.3 菜单中的Build OS有几个功能说明,见下图介绍: Build and Sysgen:第一次建立BSP需要编译内核,使用这一个功能,重新编译一个全新的内核包需要 的时间比较长,视电脑性能不同至少需要30分钟起。 Sysgen:之前己编译过内核后,更改过程序再编译一次,就使用这个功能,再编译的时间比较少,快则 5分钟即可。 Clean Before Building:清除之前BSP包中的记录,一般从直接使用我们提供的BSP包,在另一台电脑 上重新编译时就需要选择此项,将原来的记录清除。 有时编译出错或编译出新的内核没变化,也必须选 择此项。这与手动删除OBJ文件夹差不多,也可以手动去删除OBJ的文件夹重新编译。 Make Run-Time Image:只修改驱动的代码,再生成NK内核时可以选择这项,比较快的编译过程。 但要先 执行左边的FileView中的相关驱动的单个编译。如下面两个图的介绍。
  52. 52. 按右键执行一次当前驱动的编译: 3.3.4 菜单中的Platfrom下面有两个选择是比较实用的,一个是Setting,用于配置需要的一些要求。 一个是SDK包的生成。 其它更多的功能就不再详细介绍,如需要深入学习可以到书店购买相关的书籍来学习。 四PW2440嵌入式主板标配WinCE BSP编译 4.1 导入BSP源代码 Board Support Package的缩写为BSP,意思为板载支持包。PW2440提供对应版本的BSP包在光盘中, BSP包中的相关驱动提供的都有源代码,用户可以进行二次开发。
  53. 53. 路径:WinCE5.0 源代码 有不同文件夹,分不同分辨率及不同串口驱动版本的 BSP 源代码。 4.1.1 将 SMDK2440A 复制到 WINCE500PLATFORM 目录下,并去掉只读属性。我们为了区别不 同 的 源 代 码 , 一 般 会 在 SMDK2440A 后 加 些 标 识 或 按 分 辨 率 来 分 开 不 同 的 源 代 码 , 如 SMDK2440A-2C’,复制后请记得将文件夹名改为“SMDK2440A”。 4.1.2 打开 Platform Builder,进入窗口,先添加 smdk2440a.cec 文件,选择 File 菜单下的 Manage Catalog Items。如下图: 4.1.3 选择 Import 4.1.4 添加 SMDK2440A 目录下的 smdk2440a.cec 文件
  54. 54. 4.1.5.新建一个工程,选择 File 菜单下的 New Platform 4.1.6.选择“Next”
  55. 55. 4.1.7.输入工程文件的名称,然后选择“Next”。(可自由命名) 4.1.8.选择“SAMSUNG SMDK2440A:ARMV4I”,然后点击“Next”
  56. 56. 4.1.9.选择“Mobile Handheld”,然后点击“Next” 4.1.10 选上下面这些选项,然后点击“Next”。Quarter VGA Resources-Portrait Mode 是必选,其它 项建议尽可能少选,编译生成的 NK 大于 32M 通过 USB 方法下载后,偶然会看不到 WINCE 界面的 现象或编译出错或下载出错等。ActiveSync 是 USB 同步功能,需要使用 USB 同步必须选择此项,如 需要添加 word、Excel等请选择相关的选项。 在上面部分安装过“WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi”后,在STEP5这步记 住一定不能选择.NET Compact Framework ,此只是1.0版本,选择后就更改不了。
  57. 57. 4.1.11 在下图选择全部,点击“Next”。 4.1.12 继续点击“Next”
  58. 58. 4.1.13. 选择“Finish” 至此新工程文件己建立完成。 4.2 设置环境 4.2.1 上面一个基本的工程己建好了,下面需要设置一些编译参数,选择“ Platform”菜单下的 “Settings”。
  59. 59. 4.2.2 在“Build Options”中按如下设置。此页的选项涉及很多方面的使用,在此不作介绍。如需要其它 功能的使用,请根据需要自己添加,同时可参考相关教材了解这些使用方法。 PW2440的BSP包只需要使用到下面一项,其它的不需要添加。
  60. 60. 添加支持4G SD卡的参数,在Environment此页的New…菜单中添加IMGSDBUS2=1,得到的结果 图如下: 注意必须与我们配的SD卡驱动一致才可以。
  61. 61. 4.2.3 在“Locales”中添加中文,如果需要操作系统显示中文,可以将“Default language”设成中文, 再点击“OK”。如果只调试,建议使用英文,编译出来的 NK 内核会小很多,下载调试快。
  62. 62. 4.3 添加相关驱动与环境 4.3.1 下面需要在工程中添加一些必须驱动的组件。这些驱动组件与我们提供的 BSP 有相应关联 的,需要使用到的功能必须一一对应添加才可以支持。但若编译一个简单的版本测试 BSP 是否正常, 可以选择简单的几项即可。 添加“CatelogDevice DriversSDIOSD Memory”,方法见图。以下操作类似,不再提示。
  63. 63. 4.3.2 添加“CatelogDevice DriversSDIOSD HostSDIO Standard Host Controller”
  64. 64. 4.3.3添加“CatelogDevice DriversUSB FunctionUSB Function ClientsMass Storage”
  65. 65. 4.3.4添加“CatelogDevice DriversUSB FunctionUSB Function ClientsSerial” 4.3.5 添加“CatelogDevice DriversUSB HostUSB Host ControllersOHCI”
  66. 66. 4.3.6 添加 USB 驱动,“CatalogCore OSWindows CE devicesCore OS ServicesUSB Host Support USB Human Input Device Class DriverUSB HID Keyboard and Mouse” 4.3.7添加“CatalogCore OSWindows CE devicesCore OS ServicesUSB Host SupportUSB Storage Class Driver” 4.3.8 添 加 “ CatalogCore OSWindows CE devicesApplications and Services Development
  67. 67. Microsoft Foundation Classes (MFC)” 4.3.9 添加“CatalogCore OSWindows CE devicesApplications and Services Development Standard SDK for Windows CE” 4.3.10 添 加 注 册 表 驱 动 “ CatalogCore OSWindows CE devices File Systems and Data Store
  68. 68. Registry Storage (Choose 1) Hive-based Registry” 4.3.11 添加分区 FAT 类型“CatalogCore OSWindows CE devices File Systems and Data Store Storage Manager FAT File System” 4.3.12 添加分区管理器驱动“CatalogCore OSWindows CE devices File Systems and Data Store Storage Manager Partition Driver” 4.3.13 添 加 控 制 面 板 “ CatalogCore OSWindows CE devices File Systems and Data Store Storage
  69. 69. Manager Storage Manager Control Panel Applet” 4.3.14添加“CatalogThird PartyBSPsSamsung SMDK2440A:ARMV4IStorage DriversSmartMedia NAND Flash Driver (SMFLASH)”
  70. 70. 4.3.15 如需要测试电影播放,请添加下面的 MS 播放器,同时要添加相关的解码才能正常播放 的。不过你不需要这方面的话,建议你不添加这部分,添加后会使 NK 很大的。 4.3.16 Windows Media Play 播放器需要添加相关解码才能正常使用,根据你的需要,添加下面 图上的内容。
  71. 71. 4.3.17 添加.NET Compact Framework 2.0的功能,展开.NET Compact Framework 2.0下面有两个选 项.NET Compact Framework 2.0与OS Dependencies for .NET Compact Framework 2.0,全部添加即可。 4.3.18 选择Core OS/Windows CE devices/International/SimSun & NSimSun (Subset 2_50)这个字体, 可以减少5M左右的大小,让生成的NK.BIN在27M左右,让你有更多的空间去添加一些常用的功能。 如果你不选择这项,生成的NK.BIN将会超过33M,此时下载到开发板运行就会出错。
  72. 72. 4.3.19 添加RAS/PPP功能,此功能将用于GPRS拨号设置的窗口。添加Core OS/Networking - Wide Area Network (WAN)/Dial Up Networking (RAS/PPP)。 4.3.20 添加添加Core OS/Networking - Wide Area Network (WAN)/ Telephony API (TAPI 2.0)。
  73. 73. 4.3.21 添 加 XML , 在 Core OS/Windows CE devices/Applications and Services Development/XML/XML Core Services and Document Object Model (DOM) 还有XML Minimal Parser也可添加。 4.3.22其它方面的驱动根据自己的需要去添加。同时要修改 IP 地址等适合你的网络需求的,或添 加其它应用程序到 BSP 包一起编译。 4.3.23 下面就可以开始编译了,第一次编译选择“Build OS”菜单下的“Build and Sysgen”。有 时编译出非文件性错的话,可选上“Clean Before Building”再用“Sysgen”编译一次即可解决问题。以
  74. 74. 后再编译就可使用“Sysgen”编译即可。 4.3.24 整个编译过程视你的电脑配置档次,大概需要几十分钟。编译完后,得到的 NK.nb0 和 NK.bin 的文件在 WINCE500PBWorkspaces (你建的工程文件名) RelDirsmdk2440a_ARMV4I_Release 下,请复制到设定的文件夹中,使用 USB 方法或 EBOOT 引导方法进行烧录下载内核。 五 BSP源代码及定制自己的新内核 5.1 BSP源代码结构分析 5.1.1 BSP中的目录SMDK2440A里面的子菜单结构如下图: Files:包括注册表,配置文件,自己添加的应用程序等放置在这部分中。 Src:所有接口驱动等各个配置的源代码在此目录中,下面的目录如下图:
  75. 75. Bootloader:三星提供的EBOOT启动的源代码,此代码我们不使用,ATBOOT代替了此功能。 Common:通用的内部代码在此目录中,包括时钟,FLASH,内存,电源,启动等的源代码均在此中可找 到。 Drivers:各个接口的驱动源代码在此目录中,包括网络,键盘,串口,显示,触摸,SD卡,USB口,摄 像头等各个源代码均有。 Inc:各种初始化的源代码在此目录中,涉及太多,请直接根据文件名进行识别。常用的是LCD的显示参 数在s3c2440a_lcd.h此中修改。 Kernel:里面的结构中只常用到“Oal”里面的几个代码,包括显示个性化的图片,init.c,debug.c等 常用的代码。 每个目录中均有dirs的文件,使用记事本或代码编译器打开后,可以看到当时使用到的内容。如: DIRS=ceddk keybd pwrbutton pccard serial usb nleddrvr Battdrvr Backlight Display camera IIC SDHC touch wavedev keyboard 代表使用到上述的内容,如果你需要添加或删除其中一个不用,在此直接添加或删除,然后在对 应的注册表platform.reg与platform.bib文件中也要添加或删除相关的配置才可以的。 同时需要进行优化系统,也是参考这个方法,将不需要的驱动删除,这样系统启动速度就会更加 快。 5.1.2 OBJ文件夹 这个是编译过程中生成大量的记忆程序在这些OBJ中的,有时自己更改些内容,但又没有重新建立 编译过程,都是因为原来OBJ中的代码没有变化而导致编译后没生成新的。自己可以手动删除这些OBJ目 录里的内容即可。 5.2 部分代码参数的修改 5.2.1 修改键盘定义方法 在“SrcDriverskeyboard”中打开keyboard.c,找到最后的一部分,代码如下: void SetDefaultConfig()
  76. 76. { KEYVALUE[0] = 0x31; KEYVALUE[1] = 0x32; KEYVALUE[2] = 0x33; KEYVALUE[3] = VK_LEFT; KEYVALUE[4] = VK_RIGHT; KEYVALUE[5] = 0x34; KEYVALUE[6] = 0x35; KEYVALUE[7] = 0x36; KEYVALUE[8] = VK_UP; KEYVALUE[9] = VK_DOWN; KEYVALUE[10] = 0x37; KEYVALUE[11] = 0x38; KEYVALUE[12] = 0x39; KEYVALUE[13] = VK_SUBTRACT; KEYVALUE[14] = VK_ADD; KEYVALUE[15] = VK_HOME; KEYVALUE[16] = 0x30; KEYVALUE[17] = VK_RETURN; KEYVALUE[18] = VK_MULTIPLY; KEYVALUE[19] = VK_MENU; } 以上一共20个按键的定义,右边的代码是16进制的值,如果要定义自己需要的键盘功能,请参考附 件一表中的“ASCII码表”,将16进制的值对应的字符添加后再编译即可。 如:Ox31,即16进制的31对应字符是1。 5.2.2 USB HOST口识别USB设备的参数 在SrcDriversDisplay s3c2440disp.cpp中找到下面一段代码: //volatile S3C2440A_IOPORT_REG *s2440IOP = NULL; s2440IOP->GPFCON = (s2440IOP->GPFCON & ~(0x3 << 0)) | (0x1 << 0); // GPF0 == output s2440IOP->GPFUP = (s2440IOP->GPFUP | (0x1 << 0)); // Disable pull-up s2440IOP->GPFDAT = (s2440IOP->GPFDAT &~ (0x1 << 0)); //low Sleep(2000); s2440IOP->GPFCON = (s2440IOP->GPFCON & ~(0x3 << 0)) | (0x0 << 0); // GPF0 == input. s2440IOP->GPFUP = (s2440IOP->GPFUP & ~(0x1 << 0)); RETAILMSG(1,(TEXT("WIFI POWER ON-----------------------------------n"))); 其中Sleep(2000);中的数值为毫秒,即唤醒USB HOST口的时间值。此值的有效范围从800至3000不值, 根据各个USB设备来调试。 这部分是解决三星CPU对USB HOST设备不能自动识别的问题。 5.2.3 三个串口的修改 在光盘中CE源代码下有三个串口的代码,需要将相关的代码替换原来的,再重新编译得到新的 NK 即可。 需要替换的代码包括: SrcDriversSerial 里的几个文件 SrcKernelOal debug.c Files platform.reg 至少代码上的区别,请自己去对比。 5.2.4 手写输入法添加 5.2.4.1 首 先 将 相 关 的 文 件 添 加 到 files/ 下 面 , 包 括 CEPenIM.dll , HZRecog.dll ,
  77. 77. CEPenIM.dll,Former.lyl。 5.2.4.2 其次在platform.reg注册表中添加相关的内容: IF BSP_REGEDIT4 ! [HKEY_CLASSES_ROOTCLSID{4A5AF224-05B8-41bc-8ED3-0DF0432A326B}] @="JTPenIM" [HKEY_CLASSES_ROOTCLSID{4A5AF224-05B8-41bc-8ED3-0DF0432A326B}IsSIPInputMethod] @="1" [HKEY_CLASSES_ROOTCLSID{4A5AF224-05B8-41bc-8ED3-0DF0432A326B}DefaultIcon] @="WindowsCEPenIM.dll" [HKEY_CLASSES_ROOTCLSID{4A5AF224-05B8-41bc-8ED3-0DF0432A326B}InProcServer32] @="WindowsCEPenIM.dll" [HKEY_CURRENT_USERControlPanelSip] "DefaultIm"="{4A5AF224-05B8-41bc-8ED3-0DF0432A326B}" "AllowChange"=dword:00000001 "DragStyle"=dword:00000001 ENDIF BSP_REGEDIT4 ! 5.2.4.3 然后在platform.bib将文件添加到BSP包中 CEPenIM.dll $(_FLATRELEASEDIR)CEPenIM.dll NK U Former.lyl $(_FLATRELEASEDIR)Former.lyl NK U HZRecog.dat $(_FLATRELEASEDIR)HZRecog.dat NK U HZRecog.dll $(_FLATRELEASEDIR)HZRecog.dll NK U 5.2.4.4 最后执行Sysgen进行编译即可。 5.2.5 USB摄像头的添加,FLASH播放器的添加 方法如上面一样,己添加到BSP包中,可参考。 5.3 液晶屏参数修改 LCD参数的修改在SrcInc s3c2440a_lcd.h,打开代码后修改下面括号内的参数,各个型号的不同, 需要参考液晶屏的datasheet来分析。 // TFT timing parameter for V16C6448AB(PRIME VIEW) #define LCD_VBPD ((15)&0xff)// 垂直同步信号的后肩 #define LCD_VFPD ((4)&0xff)// 垂直同步信号的前肩 #define LCD_VSPW ((3)&0x3f)// 垂直同步信号的脉宽 #define LCD_HBPD ((38)&0xff)// 水平同步信号的后肩 #define LCD_HFPD ((20)&0xff)// 水平同步信号的前肩 #define LCD_HSPW ((30)&0xff)// 水平同步信号的脉宽 #define CLKVAL_TFT (1)//时序的参数 5.4 添加USB WIFI驱动 必须先按照上述方法将我们提供的 BSP 源代码编译成功后,再去添加 USB 无线网卡驱动,然后 再执行一次编译才能正常使用。 一、驱动位置 本 系 统 使 用 的 USB 无 线 网 卡 为 VIA Networking VT6656 USB-Wireless LAN Adapter , 我 们 提 供
  78. 78. WINCE4.2/5.0系统的驱动,目录在光盘的USB 无线网卡 ,请将“3rdParty”文件夹复制到你安装的 WINCE500目录下,并去掉只读属性。见图1 图1 二、添加驱动到BSP中 11. 首先确保你的开发板或产品有USB接口驱动并能正常使用。 22. 打开Platform Builder,在你己编译好的BSP中,打开原有的BSP。 33. 从菜单 File 点击 Manage Catalog Features ,见图2 图2 14. 进入Manage Catalog Features窗口,见图3 图3 5.点Import,选择VNUWLC5.CEC 。见图4
  79. 79. 图4 6.选择打开后,添加VNUWLC5.CEC到Manage Catalog Features窗口。见图5 图5 7.点OK,即添加了驱动到BSP中,从Catalog窗口中即可查到看。 "CatalogThird PartyDevice DriversNetworkingLocal Area Networking (LAN) devicesVNT VNWLC5 Wireless LAN"..见图6
  80. 80. 图7 8. 点鼠标右键选菜单Add to Platform将此驱动添加到BSP中,见图7 图8 9. 从下图中可以确定无线网卡驱动添加成功。见图8 "CatalogDevice DriversNetworkingLocal Area Networking (LAN) devicesCISCO Aironet 340/350 PCMCIA WLAN Card"
  81. 81. 图8 10. 修改IP协议地址,符合你的局域网等参数要求。请用记事本打开 VNUWLC4.REG,见图 9,10。 图9
  82. 82. 图10 11. 从图10中,我们选择局域网固定分配IP地址的选项,将IP地址,网关,子网掩码,DNS等信息 修改好。如果你不了解这些应该填写什么,请与你的网管联系确定。 如果你选择DHCP的方式,请将屏蔽的符号去掉,再屏蔽分配IP地址这部分。 修改好后保存,关闭VNUWLC5.REG。 12. 从菜单Build OS选择"Sysgen"编译内核。见图11 如果你编译成功了,下次想修改IP地址这部分,请重复第9,10两步,然后再Make Run-Time Image即可。 图11 13. 编译得到的NK.bin内核文件,请照CE使用说明烧写方法,将NK下载到AT2440EVB-I开发板的, 方法请参考CE快速烧写方法 介绍。 14.等CE系统启动成功后,将USB无线网卡插入USB口,即会弹出网络联接窗口。如果你配好无线 HUB,从CE系统的无线网卡窗口的,无线信息此页(图14),会搜索到相关的无线HUB信息。我们使 用的是TP-LINK TL-WR541G+ 54M无线宽带路由器,系统会找到TP-LINK,选择此列,点“连接”, 在弹出的无线属性 窗口中,按OK,返回到无线信息窗口时,会自动搜索相关信息,最后看到
  83. 83. 状态:己连接到 TP-LINK 信号强度:非常好 代表己成功连接,按OK确定后,CE即可上网等操作。 同时在“我的电脑-控制面板-网络和拨号连接”窗口中会看到VNUWLC51的图标,打开后可修改IP 地址与DNS等参数。不过在此修改,断电后参数不能保存。 见图12,13 图12 图13 15.关于TP-LINK TL-WR541G+ 54M无线宽带路由器 的安装使用,在此顺便提及下,以便没有使用 过的朋友方便参考。 可以将PC机上网线直接接到HUB上,在IE地址中输入192.168.1.1,输入用户名,密码进入到管理窗口。
  84. 84. 默认的用户名与密码都是admin。 关于相关的设置可参考HUB的使用说明,以选择符合你的宽带参考要求。 确保你的网络正常后,你只需要“开启无线功能”选上,即可使用无线设备。见图14 正常后,你只需要“开启无线功能”选上,即可使用无线设备。见图14 图14 16.USB无线网卡VIA Networking VT6656 USB-Wireless LAN Adapter 参数说明。 Embedded System/IA Solution for VT6656 WLAN 802.11B/G embedded module enables high-speed 54Mbps wireless connections to LAN services. Integrated WLAN into embedded module devices makes it more convenient to get on the net everywhere you are. WLAN embedded system/IA solution is the innovation design, fully compliant with IEEE’s security and 802.11g standards. Enabling data rates between wireless devices of up to 54Mbps, it can deliver the bandwidth necessary for real-time streaming of high-definition digital multimedia content in home networks, an d provide high-speed email, web and LAN access to multiple mobile users in corporate environments or public hotpots. Specifications: Radio Frequency •2400-2483.5MHz( for US, Canada) Band: •2400-2483.5MHz( for Europe)
  85. 85. Operating IEEE 802.1b, Direct Sequence Spread Spectrum, Channel: IEEE 802.11g,Orthogonal Frequency Division Multiplexing •11 Channels( US, Canada) •13 Channels( Europe, Japan) Modulation QPSK, BPSK, CCK, OFDM Type: Data Rate: Up to 54Mbps Antenna: To support two external antenna via connector Radiation 13-17dBm at maximum radiation direction Power: Voltage 5V Supply: Power ①384uA@5V, Suspend/high speed mode Consumption: ②259uA@5V, Active/high speed mode Receiver ①Min-71dBm@54Mbps,PER<8% Sensitivity ②Min-84dBm@11Mbps,PER<8% Compliant: FCC Part 15 C(USA); CE ETSI 300-328(Europe);USB- IF Media Access Controller/Baseband Controller Chip: VT6656 Media Access CSMA/ CA( Collision Avoidance) with ACK Protocol: USB Interface Host Interface: Support USB2.0/1.1 standard Driver Supporting Operating Windows: 98SE/ Me/ NT/ 2000/ XP/ 2003 Ser., System: Linux( 2.4.x/2.6.x), CE( 4.2/5.0b) Mechanical Physical 60x25x5.52mm(L*W*H) Dimension: Weight: 10g Operating •0°C to 55°C in Operating •-20°C to 70°C in Temperature: Storage Operating •0% to 70% in Operating Humidity: •0% to 95% Non-condensing in Storage Warranty 1Year 5.5 编译的各个功能选择 菜单中的Build OS有几个功能说明,见下图介绍:
  86. 86. Build and Sysgen:第一次建立BSP需要编译内核,使用这一个功能,重新编译一个全新的内核包需要 的时间比较长,视电脑性能不同至少需要30分钟起。 Sysgen:之前己编译过内核后,更改过程序再编译一次,就使用这个功能,再编译的时间比较少,快则 5分钟即可。 Clean Before Building:清除之前BSP包中的记录,一般从直接使用我们提供的BSP包,在另一台电脑 上重新编译时就需要选择此项,将原来的记录清除。 有时编译出错或编译出新的内核没变化,也必须选 择此项。这与手动删除OBJ文件夹差不多,也可以手动去删除OBJ的文件夹重新编译。 Make Run-Time Image:只修改驱动的代码,再生成NK内核时可以选择这项,比较快的编译过程。 但要先 执行左边的FileView中的相关驱动的单个编译。如下面两个图的介绍。
  87. 87. 按右键执行一次当前驱动的编译: 5.6 导出SDK 将PW2440主板所配的BSP第一次编译一次,成功后再从PB中导出SDK。 5.6.1 在Platfrom—SDK—New SDK
  88. 88. 5.6.2 弹出窗口选择下一步 5.6.3 输入工程文件名与公司名,然后下一步。
  89. 89. 5.6.4 选择下面两个一起,下一步。 5.6.5 最后窗口完成即可。
  90. 90. 5.6.6 再回到Platfrom—SDK—Configure SDK 5.6.7 配置你的要求,默认即可
  91. 91. 5.6.8 再回到Platfrom—SDK—Build SDK 5.6.9 生成SDK,请等待,完成后Done即可完成。 路径:C:WINCE500PBWorkspacesSDKAT2440_SDK.msi,生成后自己安装即可使用。由于这些都是PB 上的功能,我们以前说明都没有提供这部分,但咨询的人也不少,所以花点时间写写出来。
  92. 92. 六 WinCE5.0 在PW2440上各个功能使用 6.1 MP4 播放器 在“我的设备--Windows--player”可以播放 MP4(avi)格式的电影,经测试使用 800*480 分 辨率全屏播放,效果非常流畅,图象清晰。可以使用光盘自带的电影测试,得到的参数如下: BetaPlayer Version STABLE.0.5 Benchmark Results Average Speed 49.88% (平均速度) Video Frames 31 (视频帧数) Audio Samples 84480 (音频采样) Amount of Data 123 KB (数据总计) Bench. Time 0:02.591 (测试时间) Bench. Frame Rate 11.96 (测试帧速率) Bench. Sample Rate 32593 (测试音频采样) Bench. Data Rate 391 kbit/s (测试数据传输率) Original Time 0:01.292 (原始时间) Original Frame Rate 23.98 (原始帧速率) Original Sample Rate 48000 (原始音频采样) Original Data Rate 784 Mbit/s (原始数据传输率) URL Storage CardA1_mp4.avi Size 67174400 Platform PLATFORM_TYPE OS Version 5.00 OEM Info PLATFORM_OEM Clock speed 416 Mhz Video output Raw FrameBuffer 800x480 Lookup Audio output Wave Output 48000Hz 16Bits 2Ch.
  93. 93. 或者可以使用微软自带的 Media Player,但这个不支持 MP4 格式。 6.2 USB 摄像头测试 采用中星微 301 系列摄象头驱动程序,最高支持 200 万有效像素,速度与清晰率非常好,可与 PC 常用 的 设 备 效 果 相 比 。 驱 动 己 添 加 到 BSP 包 里 , 插 入USB摄 像 头 后 , 进 入 “ 我 的 设 备 - -Windows—Testzc030x”,打开 Testzc030x,会提示找到 1 个设备,按 OK 即可出现图像窗口。 本程序采用第三方驱动与测试程序,只有 DLL驱动,不提供源代码等,需要咨询注册与购买请看 说明中第三方的资料与介绍。 6.3 Camera 摄像头测试 WinCE 下的摄像头驱动支持 130素的 OV9650/ov9620 模块,如用户需要配置其它型号的摄像头模 块,请自行修改相关驱动程序。 此部分的测试程序只对接口验证是否有效,对于所看到的测试效果不佳 等不负责。同时并没有这部分相关的源代码提供,只提供相关驱动作参考使用。 PW2440 开 发 板 提 供 这 个 接 口 , 在 WINCE 系 统 中 也 添 加 了 这 个 OV7660 的 驱 动 , 在WINDOWS/CameraTEST.exe 的测试 DEMO,可以用来测试摄像头与接口是否正常。但 DEMO 所看到的效果中比较差的,并且只能看图,不能抓图,保存等。没有此部分源代码提供。 6.4 SD 卡 WINCE5.0 支持 SD 卡即插即用,插入 SD 卡后,会在“我的设备--Windows”找到“Storage Card”SD 卡文件夹。 目前支持4G 容量,更大的容量需要自己修改文件系统,我们暂不提供此项服务。 6.5 保存文件 在“我的设备--Windows”找到“ResidentFlash”,将你的文件资料放在此目录下,可以永久保存, 断电后数据不会掉失。如果你要将程序放在 Windows 目录下,那就需要在编译时将你的程序添加到 BSP 中一起编译。 6.5 USB HOST 接口 支持 USB 鼠标、USB 键盘与 U 盘等设备即插即用。 USB 是 1.1,有些 USB2.0 设备有可能不支持。 6.6 网络使用 进入“我的设备――控制面板――网络和拨号连接”,打开“DM9CE1”进行设置 IP 地址、名称 服务器等参数,即可登录网络。此为 10/100M 的网卡。 上网需要设置 DNS,中国电信的 DNS 一般为 202.96.128.166.或自动搜索。 WINCE5.0 支持局域网方式上网,其它方式如 ADSL 拨号上网暂不支持。同时支持 USB 无线网卡 上网方式。 6.7 触摸屏校正 进入“我的设备――控制面板――笔针”,可重新校正触摸屏,并可保存。 触摸屏的参数在注册表中可以查看到,在“我的设备--Windows――regedit”,打开注册表,在 “ My Device――HKEY_LOCAL_MACHINE――HARDWARE—DEVICEMAP-- TOUCH”,CalibrationData 的 Data 的值就是触摸屏参数。 在 PB 中 Workspace——ParameterView――platform.reg,双击打开代码,在下面内容可以修改后 再Make Rum-Time Image. IF BSP_NOTOUCH ! [HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH] "MaxCalError"=dword:7 ; portrait
  94. 94. ;640*480 at056tn52 v.1 "CalibrationData"="1271,873 244,228 256,1557 2292,1560 2251,190 " ;320*240 lq035nc111 ;"CalibrationData"="622,460 128,98 138,802 1118,819 1114,108 " ENDIF BSP_NOTOUCH ! 6.8 录音 在“我的设备--Windows――recorder”,通过话筒插入 MIC 音频录音口,点 recorder 窗口的 红色按钮,即可开始录音。支持同时录音,放音。 6.9显示界面旋转 90 度 目 前 我 们 配 的 3.5‘LCD 分 辨 率 显 示 为 320*240 横 屏 , 有 些 客 户 需 要 将 显 示 为 竖 屏 效 果 240*320,现在将修改的方法列出如下: 用记事本打开:SMDK2440AFilesplatform.reg 修改下面的注册表为如下内容,重新编译即可: [HKEY_LOCAL_MACHINESystemGDIRotation] "ANGLE"=dword:5a "LandscapeMode"=dword:1 注:请注意大小写要区分。 原来为 320*240 如下: [HKEY_LOCAL_MACHINESystemGDIRotation] "Angle"=dword:0 为了演示效果,你也可以通过进入 CE5.0/Windows/regedit.exe 中 [HKEY_LOCAL_MACHINESystemGDIRotation]修改 Angle 为 90,然后重启即可。 但断电后不会保存 结果的。 6.10 GPS 接收器的使用 若选购我们配的 GPS 模块,在GPS接口中有个白色座,将我们整好的线直接接上。 接口的定义请看原理图上介绍。 接线方法是直接将 GPS 模块接到 GPS 接口上,下图是旧版本接在 COM0 上,两种方法均可:
  95. 95. GPS 测试软件在光盘“GPS 软件”的目录中,有测试串口是否找到 GPS 设备的工具,还配有 GPS 地图软件试用版。需要将目录下的内容复制到 SD 卡中,插入到开发板中直接使用。使用此功能完 全可以作为一台手持 GPS 导航仪。 接线方法如下: IO扩展口 对应 GPS模块接口 1脚:VDD5 1脚:VDD5 37脚:RXD0 2脚:TXD0 38脚:TXD0 3脚:RXD0 43脚:GND 5脚:GND 因为我们板上的串口是使用交叉接线方式,所以2,3脚要反过来才对应。 6.11 USB 同步 在我们编译好的 NK 内核中,己增加 USB 同步的选项, ActiveSync 是 USB 同步功能,选择后 CE 进入窗口会经常弹出检测 USB 连接,如果你的 2440 板 USB 从口没有连接到 PC 电脑上,会一直 发出检测提示,可以在“我的设备――控制面板――PC 连接”中取消此“启用与台式计算机的直接连 接”选项后 OK 即可保存此设置,我们己解决了注册表保存功能,就算断电后都不掉失。 使用此功能的用户请 USB 同步在 WINCE5.0 中不需要进行任何设置,在控制面板--PC 连接, 打开PC 连接属性,需要选择“启用与台式计算机的直接连接”然后 OK 即可。默认使用 USB 连接。 要进行 USB 同步测试,首先要在 PC 机上安装同步软件 MicrosoftActiveSync_setup_cn.msi(在光 盘的工具软件/wince 同步软件/目录里面)。 第一次使用此功能时需要安装相关驱动,将 USB 打印线一头接在 AT2440 的 USB DEV 口,另 一头插在 PC 的 USB 口上,进入 WINCE5.0 系统后会提供发现新的硬件,照下面步骤进行安装 USB 同步的驱动。 选择“从列表或指定位置安装”,点击“下一步”
  96. 96. 选择“在搜索中包括这个位置”,找到光盘中的“工具软件USB 驱动WinCE 下与 PC 同步的 USB 驱 动”目录,点击“下一步” 选择“仍然继续”
  97. 97. 点击“完成” 则 PC 端与 USB 设备同步的驱动安装完成。这时同步软件 Activesync 会自动打开,第一次使用时会提 供 USB 同步是否选择同步,选择后要将“文件”部分选上,确定后将出现下面窗口进入。全部使用默 认的配置,不需要作修改。 选择是,然后下一步。
  98. 98. 选择文件,弹出说明窗口,选择确定。 选择了文件然后下一步。
  99. 99. 出现完成的窗口,点完成即可进入下面界面。 更改成功后,即可完成,下图为同步成功的窗口。
  100. 100. 此时点击工具栏的“浏览”,就会弹出开发板上“我的电脑”中的内容。此时可将开发板作为一个U盘 设备使用,我们开放了一个保存区“ResidentFlash”,将文件复制到此目录即可永久保存,断电后也不 掉失。 偶会有用户提到 USB 同步不稳定的问题,经过与部分用户了解情况,有部分与 PC 主机的 USB 接口输出电压偏低有关系的。目前此功能是比较稳压的,除非驱动没有安装正确才会导致 USB 同步出 错。如果有时检测不了同步,请将 USB 线插拨多次即可。
  101. 101. 6.12 存储管理器 在控制面板中增加了存储管理器功能,可以对 FLASH 进行格式化等功能。请注意,会造成数据掉 失。 6.13 调整内存空间 如果你的程序需要放在 WINCE 目录下测试,但发现提示空间不足,请到控制面板中,打开系统 , 在内存这页,可以调整内存的。从系统属性上显示的内存大小只有 90M 左右,其中 CE 系统己占用了 30M多,可见的部分是还没有使用的。这个显示方式与 PC 系统是有区别的。 6.14 增加启动时个性化 LOGO 在我们配的 BSP 中,己添加了 LOGO,如果需要更换为你自己的个性化 LOGO,可照下面方法 更换,再重新编译一次,得到的 NK 就包括你的 LOGO。 进入到“WINCE500PLATFORMSMDK2440ASrcKernelOal”目录下,有一个 bitmap.c 的文件,此 文件就是包括了 LOGO 的转换代码。 在光盘“AT2440EVB-III工具软件”目录下,有一个 Bmp2HexPro.exe 工具,打开后将你的界面 设置为如下图一致的配置。 通过 OPEN 打开你设计的 BMP 格式图片,记得使用 16BIT 的格式保存。图片大小要与屏的分辨 率一致才保证不会变形。
  102. 102. 打开你的 BMP 图片时,软件会弹出可以编译的窗口,此时点下周围的位置即可退出。 然后点 Output,输出.c 的文件类型保存。建议直接保存为 bitmap.c 的文件名。
  103. 103. 用编辑器或记事本打开你所保存的 bitmap.c 文件,在第一行位置你将会见到下面函数: unsigned short []={ 现在你需要将以下的内容替代刚才的函数: #include <windows.h> const USHORT ScreenBitmap[] = { 保存后得到新的 bitmap.c 文件。 此时将新的 bitmap.c 复制到“WINCE500PLATFORMSMDK2440ASrcKernelOal”目录下,覆盖原 有的相同文件,再重新编译 NK,即可添加你的个性化 LOGO。 下面的内容为己修改完成的前面部分,仅供参考对比。 6.15 三个串口使用 光盘/工具软件/ CE-串口工具与代码,里面有我们提供的CE串口测试工具“av-SerialPort-CE.exe”, 同时在PC端使用“串口调试助手V2.2-PC.exe”,即可进行PW2440主板与PC电脑主机的串口通讯。 6.16 关闭LCD屏幕的方法 我们提供了一个关闭LCD屏幕显示的程序“LedCon.exe”,己将此程序添加到window/目录下了,打开 运行,点下窗口即可关闭LCD的电源,再点即打开电源。 同时附有源代码在光盘/工具软件/LCD屏幕关闭
  104. 104. 工具/ 中。 6.17 手写输入法 新版本中增加了手写中文输入软件,要有触摸屏或鼠标情况下才可以使用,方法简单。此版本的输 入软件不需要注册,不限制使用次数,是个不可多得的好东西。 可直接从任务栏字体中选择出来。 6.18 GPRS拨号设置方法 注意:使用GPRS拨号功能,需要将DM9000的网络设置部分全部取消,才不会对GPRS上网造成冲突,如 果拨号正常,但上网浏览无法显示,都与固定的网络设置中的IP等参数有关。 A.内核支持,组件添加,见上面己介绍过。 B、设置步骤 在控制面板打开正在拨号 注:选择住宅或单位,国家代码和区号可以不填,选编辑 全设为G(只第一个填G也可),按OK 然后打开控制面板的网络和拨号连接->新建连接
  105. 105. 选拨号连接,下一步 按配置 端口设置:波特率:115200、19200、9600,这部分与你所采用的GPRS MODEM有关,我们测试的设备 是115200的。 流控制:无
  106. 106. 在在拨号选项添加命令 +CGDCONT=1,”IP”,”CMNET” (或+CGDCONT=1,IP,CMNET) 设置完OK 其他设置如TCP/IP设置及安全设置都可保留默认设置 TCP/IP设置: 常规——> 选上 使用服务器分配的IP地址 使用软件压缩 使用IP数据头压缩 名称服务器——> 使用服务器分配的地址 (不能配置DNS) 安全设置: 高级安全设置——>不选 使用数据加密 使用可扩展的身份验证协议(EAP) 电话号码:*99***1#,记得更改为这个。
  107. 107. 用户名和密码不填,按连接 *99***1# 连接成功后会显示如上。 C、错误解决方案 1.拨号时显示“端口不可用”(根本原因是初始化调制解调器失败)检查接线是否正确;若正确,请重 启GPRS模块或改变波特率19200为9600;或检查附加命令设置是否为+CGDCONT=1,ip,CMNE 注意:WinCE里面发AT命令可以设置自动加上AT,所以设置参数时不要再加AT了 2.若有下面的现象:能打开COM口,也能“拨号到*99***1#",然后很快就显示“已连接的设备”,然 后就没动静了,但不能上网,大概过了两三分钟就跳出一个对话框说“与远程计算机的连接断开,请 重拨”。遇到这种情况的话请检查确保CTS,RTS没接;端口设置里选的是无硬件流控;安全设置里不选 @使用数据加密@使用可扩展的身份验证协议(EAP)@选择 微软CHAP选项(必选)其他可选 3.若拨号时显示“无载波信号” 请检查,拨号属性的第一项是不是“G”
  108. 108. 6.19 FLASH播放器测试 己将RichPlayer.exe添加到windows目录下了,运行即可使用。但FLASH播放的动画要求比较高,速 度有点慢。 七 VS2005/2008开发工具安装与使用 7.1 安装方法 7.1.1安装vs2008 VS2008全称Microsoft Visual Studio 2008,您可以到微软公司网页阅读关于它的详细信息, 详细安装过程不再描述。 注:VS2005与VS2008使用方法一样。 7.1.2添加.NET Compact Framework 2.0特性 注意:WINCE5.0默认安装以后是没有.NET Framework2.0组件的,一定要打上07年的 Armv4I补丁。下载地址:http://download.microsoft.com/download/4/e/7/4e725c54- b97e-4751-9648-cd53c8365e81/WinCEPB50-071231-Product-Update-Rollup- Armv4I.msi 在pb中添加2.0的步骤: 在“New Platform Wizard – Step 5”中选择你所需要的配置,取消.NET Compact Framework。如图:(注意:这里的.NET Compact Framework是1.0版本的,我们要在后 面添加2.0的.NET Compact Framework,所以这个地方我们不选择。)
  109. 109. 添加.NET Compact Framework 2.0特性,如图所示,注意:需要打上WINCE5.0的07年 补丁才有该特性选择。 7.2 创建Hello World实例 在VS2008新建一个项目,命名为HelloWorld。选择“Smart Device Project”,再选择 “Device Application”模块,如下图,记住”.net Frammework 2.0”时,务必检查你在 编译NK.bin的时候是否添加了2.0。
  110. 110. 点击“OK”,在窗口加入一些控件,HelloWord代码在光盘实验例程中提供: 7.3 建立连接 要求此时已经连接好了USB线、同时激活了开发板与PC机上Microsoft ActiveSync软件之间 的同步连接。设定好将要连接的平台,单击“Tools”菜单下的“Option…”: 注意:请一定将WINCE里面的IP设置为动态获取,否则可能远程连接不上。 在弹出的对话框中选择“设备工具”->“设备”,在右侧选择“Windows CE”, (这个是 我们自己用PB5.0导出自己的SDK后安装的,如果没有导出SDK就选择windows CE,但是最
  111. 111. 好就是用自己导出来的SDK,导出方法见后面介绍的方法)默认设备中也选择“Windows CE”, 按“OK”即可。 单击菜单“Tools”下的“Connect to Device…”项目: 弹出一个串口,如图选择,按“Connect”
  112. 112. 连接成功,如下图所示。 按,“Close”,这时就表示VS2008已经连上了你的Device,你可以调试你的程序了。 7.4 编译与下载 确认上一步连接成功,然后点击菜单“Debug”下面的“Start debug”项目:
  113. 113. 弹出“部署HelloWorld”的对话框,选中其中的“Windows CE Device”,然后点击“Deploy”按钮: 如果程序没有问题,VS2008左下角的状态栏中会显示“Deploy succeeded”,等待几秒钟以后,在手持 设备的界面上会显示出应用程序界面,如下图所示:
  114. 114. 根目录增加的内容,掉电是丢失的,如果想调电还保留,请将根目录下的“SmartDevice”文件夹拷贝到 “ResidentFlash”文件夹。 八 WinCE常用的功能例程 注:以下内容不作解释与技术支持,仅以提供方便自学研究。 8.1 WinCE 中如何向 image 中添加文件 这里分 3 种情况来说明如何添加 第一种,就是 image 已经在 CEPC 或者终端上跑起来了,那么这个时候要想添加文件可以通过 PB 或 者 EVC 提供的 remote file viewer,这个比较简单,看着界面操作就行了。 第二种,就是对定制的 image 已经 build 过了,现在想往里面添加文件的话,可以在你对应平台的 release文件夹里面直接添加文件,然后修改平台配置文件 project.bib,然后再 make image,也可以将 文件添加到image 中去,将 image 启动后,会出现在 windows 文件夹下面。 比如你想将 test.txt 添加到 image 中,则首先需要将此文件拷贝到平台 release 目录下面 (平台 release 目录也就是环境变量_FLATRELEASEDIR 的值,_FLATRELEASEDIR 的 = %_WINCEROOT%PBWorkspaces%_TGTPROJ%RelDir%_TGTPLAT%%_TGTCPUFAMILY %_Release,也就是 realease 目录,(_TGTPLAT 为平台名,_TGTCPUFAMILY 为 CPU 名)。我新建 的平台为 shellTest,其值为 E:WINCE500PBWorkspacesShellTestRelDirMyCEPC_x86_Release ) 然后按照以下修改 project.bib: 在其中添加类似这样一行 test.txt $(_FLATRELEASEDIR)test.txt NK S
  115. 115. 这句话的意思是说将平台 release 文件夹下面的 test.txt 文件添加到 image 中,文件属性为系统文件, 关于 bib 文件的格式,请查阅 WinCE 的帮助。 修改好 project.bib 后,保存,然后在 pb 的 bulid 菜单下选择 make image,成功后下载到终端或 CEPC,就可以看到添加的文件了。 下面这种方法适合在 PB5 中处理: 第三种,就是平台定制都没做好,或者做好了需要修改,那么如果你直接按照第二种来做,然后选择 build 菜单的 sysgen and build 的话,你会发现根本不会讲 test.txt 拷贝到 image 中,这个也是我的惨痛 教训, 花了好些时间才知道原因。 为什么呢?从 build image 时的 output 窗口,我每次都可以看到 clean up 项目 release 目录的输出,看 来我直接把文件复制到 release 目录是不行的,因为在 sysgen and build 的过程中此文件夹会被清空, 自然我的 test.txt 也被清掉了。那该怎么办呢? 这里缺少一个步骤,那就是要在平台设置中,作一些配置,从而让 Release 目录在被清空以后能将目 标文件从本地硬盘动态复制到 release 目录修改配置以便拷贝文件到 Release 目录的主要步骤如下: 1. pb 中从 platform 菜单选 setting 2. 在弹出对话框中 Configuration 一项确保正确,一般默认就是正确的。 3 Custom Build Actions 选项卡中的 Build step 下拉框,选择 Pre-Make Image (有四个选项,分别为Pre- Sysgen , Post-Sysgen , Pre-Make Image , Post-Make Image , 意 思 如 其 名 ) , 然 后 New , 在 弹 出 的 Custom Build Action 对话框中输入类似以下的语句: copy %_FLATRELEASEDIR% 比如 test.txt 放在我电脑上的 e 盘根目录下,那么语句是这样的: copy E:test.txt %_FLATRELEASEDIR%test.txt 加上这个步骤后,再按第二种方法就可以达到目的了。 8.2 建立 HIVE 注册表 To use the hive-based registry 1. Add the Hive-based Registry Catalog item to your OS design. 2. Verify the following registry settings in the Platform.reg file for your OS design. [HKEY_LOCAL_MACHINEinitBootVars] "SystemHive"="<your system hive location>" "Start DevMgr"=dword:<your value> For more information about configuring the registry to support the hive-based registry, see Hive-based Registry Setup. 3. Set the following registry value in the Platform.reg file for your OS design to determine the default hive to load.
  116. 116. [HKEY_LOCAL_MACHINEinitBootVars] "DefaultUser"="<username>" 4.Verify that all registry entries necessary for starting drivers in the first boot phase are wrapped in the comments. The following code example shows typical comments. ; HIVE BOOT SECTION <your registry settings> ; END HIVE BOOT SECTION These tags are commands that tell the ROM registry builder to add the entries to the boot hive. 5.Set the following flag bit on each driver that is loaded during the first boot phase. [HKEY_LOCAL_MACHINEDrivers...] "Flags"=dword:1000 The flags are a bitmask to OR with any existing settings. This flag tells the Device Manager to load your driver in the first boot phase with the boot registry, and not to load it a second time in the second boot phase with the system registry. It prevents the driver from being started twice. 6. Set the MountFlags registry value equal to DWORD:2. Set this value on the Storage Manager profile of the file system driver for the medium that contains the registry. This indicates that the file system contains the following registry key. [HKEY_LOCAL_MACHINESystemStorageManagerProfiles<ProfileName><FileSystemName>] "MountFlags"=dword:2 7. Decide whether a registry flushing mechanism is necessary. Outstanding registry data will be flushed on a suspend or resume cycle and any time the system goes through a software shutdown. However, data may be lost if power is suddenly removed. If a software shutdown is not an option, you may need to create a thread that periodically flushes data. To ensure that data is not lost, call RegFlushKey. This will flush any unsaved changes in the hive to the persistent file. It will not damage anything to call RegFlushKey when no data has changed; in that case, the file will not be touched. RegFlushKey should be called on both the system hive HKEY_LOCAL_MACHINE and the user hive HKEY_CURRENT_USER. 注:完成第六步后,需选择编译选项的 Clean Before Building,然后再编译(Build and Sysgen)。 8.3 应用程序中对注册表的编辑 在 WinCE 中的应用程序如需对注册表编辑,可使用如下几个函数: Programming element Description RegCloseKey This function releases the handle of the specified key. RegCreateKeyEx This function creates the specified key. If the key already exists in the registry, the function opens it. RegDeleteKey This function deletes a named subkey from the specified registry key. RegDeleteValue This function removes a named value from the specified registry key. RegEnumKeyEx This function enumerates subkeys of the specified open registry key. RegEnumValue This function enumerates the values for the specified open registry key. RegFlushKey This function writes all the attributes of the specified open registry key into the registry. RegNotifyChangeKeyValue This function notifies the caller about changes to the attributes or contents of a specified registry key. RegOpenKeyEx This function opens the specified key. RegQueryInfoKey This function retrieves information about a specified registry key. RegQueryValueEx This function retrieves the type and data for a specified value name associated with an open
  117. 117. registry key. RegSetValueEx This function stores data in the value field of an open registry key. 我们重点使用 RegOpenKeyEx,RegSetValueEx,RegQueryValueEx 和 RegCloseKey 这几个函数,其功 能 如 上 面 所 介 绍 。 对 一 个 注 册 表 操 作 , 需 先 用 RegOpenKeyEx 打 开 , 再 用 RegSetValueEx,RegQueryValueEx 查询或设置,最后用 RegCloseKey 关闭。 下面是一个对注册表设置的例子: void RegSwitch(LPCWSTR ImKey, LPCWSTR ImIconKey, WCHAR * Im240X320, WCHAR * Im320X240, WCHAR * ImIcon) { LONG lret; HKEY hKEY; if(GetSystemMetrics(SM_CYSCREEN) > 240) { lret = RegOpenKeyEx(RESKEY,ImKey,0,KEY_READ,&hKEY); if(lret==ERROR_SUCCESS) { RegSetValueEx(hKEY,VALUENAME,0,REG_SZ, (LPBYTE)Im240X320, sizeof(WCHAR)*(wcslen(Im240X320)+1)); lret = RegOpenKeyEx(RESKEY,ImIconKey,0,KEY_READ,&hKEY); if(lret==ERROR_SUCCESS) { RegSetValueEx(hKEY,VALUENAME,0,REG_SZ, (LPBYTE)ImIcon, sizeof(WCHAR)*(wcslen(ImIcon)+1)); } } RegCloseKey(hKEY); } else { lret = RegOpenKeyEx(RESKEY,ImKey,0,KEY_READ,&hKEY); if(lret==ERROR_SUCCESS) { RegSetValueEx(hKEY,VALUENAME,0,REG_SZ, (LPBYTE)Im320X240, sizeof(WCHAR)*(wcslen(Im320X240)+1)); lret = RegOpenKeyEx(RESKEY,ImIconKey,0,KEY_READ,&hKEY); if(lret==ERROR_SUCCESS) { RegSetValueEx(hKEY,VALUENAME,0,REG_SZ, (LPBYTE)ImIcon, sizeof(WCHAR)*(wcslen(ImIcon)+1)); } } RegCloseKey(hKEY); } } 下面是一个对注册表查询的例子,该例子实现了查询注册表中的屏幕旋转键值,并使屏幕旋转: #include "stdafx.h" #include "windows.h"

×