热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PlatformBuilder之旅(一)

在以前的文章中我已经数次提到了PlatformBuilder(简称PB),并且简单的讲述了利用PBv4.1的定制平台向导(N

  在以前的文章中我已经数次提到了Platform Builder(简称PB),并且简单的讲述了利用PB v4.1的定制平台向导(New Platform Wizard)创建了几个CE的平台。从这一篇文章起,我和PB爱好者们一起进入PB的世界,一起领略PB的风采,一起学习PB。写每一篇文章对我来说都是一个进步,希望大家能够多提宝贵意见,多阐述看法。
  相信看到我以前写的文章你已经会利用定制平台向导来定制简单的内核了。这次我仍然用这个向导,只不过采用自定义配置来选择平台的组件。自定义配置的优点是能够更细致的选择组件,这样定制的平台只包含我们需要的功能,而不要的全部抛弃。首先打开"New Platform",在"Step 2"中选择"EMULATOR: X86"。在这里强调一点:能够运行PB创建的CE平台的环境有三种。第一种是真实环境,包括某一种CPU和支持的主板还有其它配置;第二种是模拟环境,PB包含了模拟器,能够在PC上模拟运行CE平台;第三种是PC环境,PB可以创建能够在PC机运行的CE平台。并且提供了一组引导文件,通过这些引导文件可以加载CE内核文件(nk.bin)并启动Windows CE。三种环境相比较,如果具备真实的环境那是最好了,模拟环境只能模拟简单的功能,PC环境和模拟环境相似,只适合用来学习PB。PC环境需要的引导文件可以通过如下办法得到:在PB的安装所在位置(比如C盘)查找文件Websetup.exe,运行这个文件,这个程序会解压出一个名为WEBIMGNT.EXE的文件。再查找名为cepcboot.144的文件,将cepcboot.144文件复制到同WEBIMGNT.EXE同一个目录下。插入软盘到A驱,然后在控制台程序(cmd.exe)下输入命令"WEBIMGNT.EXE cepcboot.144"。在弹出的对话框中单击"A drive",程序把解压出来的启动文件都复制到软盘上。编辑启动文件中的"Autoexec.bat"批处理文件,如果PC配置的网卡是被支持的(微软推荐的网卡类型有NE2000、SMC9000兼容网卡、RealTek RTL8139等),并且是PCI接口的,按如下修改:

set NET_IRQ=9
set NET_IOBASE=0

  修改之后还要输入一个静态的IP地址。这个IP地址要和运行PB的电脑的IP地址处于一个子网内。实际上PC环境还是无法实现CE平台的大多数功能,所以对于要学习PB而又不具备真实环境的人来说,模拟器是比较合适的。
  回到定制平台向导,在"Setp 3"中单选"Custom configuration",输入平台名称和路径。在"Step 4"中必须单选"Custom Device with Shell and Graphical User Interfac"。表示平台将加入外壳程序和GUI。有了资源管理器这样的外壳程序我们操作就方便多了。在"Step 5"中列出的是"Application & Services Development"。这些都是用于软件开发的库。大多数支持库我们在PC上开发时早已熟悉了,有几个是CE独有的。比如"Simple Network Management Protocol"(简单网络管理协议),这是用在网络设备上的协议;"Pocket Outlook Object Model API",用于读取Pocket PC中"Inbox"软件中的数据;"Beta .NET Compact Framework"是.NET的支持框架。这个在PB v4.1中不要选取,它在PB v4.2中才是正式版。其余的选项说明参见CE帮助文档(位置:operating system development/windows ce.net overview/catalog features/applications and services development)。"Step 6"中列出了Windows CE自带的应用程序。"Step 7"中列出了操作系统内核支持的服务。包括串口支持、并口支持、USB口支持、调试工具、电源管理,还有一些其它特征。这里的调试工具不仅仅指能够用于调试的应用程序,还包括用于调试的API函数。Toolhelp就是专门用于查看当前操作系统的进程及进程包含的线程、DLL的信息。"Kernel Features"(内核特征)中的Fiber API是用于支持纤程的API。"Keyboard & Touch Driver Debugging Sample Applications"包括四个调试工具,用于调试触摸屏和键盘的驱动程序。"LMemDebug memory debugging hooks"用于查看当前操作系统正运行的程序的内存信息。在"Step 8"中列出的是网络特征(我有时称特征为组件,实质一样)。包含CE支持的所有网络协议。"Networking Features"中大多数的子项都要加入的,其它项按需加入。比如要支持红外线一定要加入PAN中的IrDA。要拨号上网的一定要加入WAN所有项。"Step 9"中列出了存储特征。包含和存储设备相关的支持。具体包括存储管理器(支持CDFS、FAT文件系统)、数据库支持、ROM和RAM文件系统、注册表存储支持。关于ROM和RAM、FAT我在以前的文章中提到过,这里就不再详细讲解了。"Step 10"中列出了CE包含的所有英文字体。要了解这些字体中每种字体所占空间大小,可以将鼠标放到字体名字的上面,系统就会显示这种字体的大小。一般来说一个定制的CE平台其中字体尤其是中文字体占用空间是很大的,所以选择字体要慎重。除非必要,否则不要添加太多的字体。"Step 11"列出了国际化选项。包括各种语言支持包。在这里选择"National Language Support[NLS]",再选择一种本地区语言,比如"Chinese {Simplified}"。"Agfa AC3 Font Compression"建议选择,这是一种字体压缩技术,适合中文字体。在"Chinese {Simplified}"第一子项中列出了字体。这一项选择至关重要,因为中文字体占用的空间太大了,直接影响CE平台的总体大小。具体选择哪些字体请参见CE帮助文档(位置:operating system development/windows ce.net overview/catalog features/ International)。从帮助文档中才能了解具体哪个子集包含哪些中文字体和字符集。"Chinese {Simplified}"其它子项包括中文输入法、输入法编辑器建议全部选择。"Step 12"列出了CE包含的Internet客户端程序、支持的组件和脚本。第一项"Browser Application"中建议选择第一子项"Internet Explorer 5.5 for Windows CE Components",而第二子项"Pocket Internet Exlporer"是用在PDA上的功能较少的Internet浏览器。第二项"Internet Explorer 5.5 for Windows CE Components"中建议选择全部子项。这些子项都是开发IE的API函数、Active X控件。第四项"Sample IE 5.5 Internet Options Control Panel"是"控制面板"中的用于修改IE选项的程序。和Windows 桌面操作系统下"控制面板"中的"Internet 选项"一样。"Step 13"列出了CE支持的多媒体服务。可以任意选取要播放的各种媒体和具体媒体的格式。Direct X也可以分拆选取。"Step 14"列出了CE支持的安全服务。"Step 15"列出了各种外壳和用户接口。外壳程序一般常常选择"Graphical Shell"中的标准外壳程序"Standard Shell",也就是资源管理器。"Step 17"是最后一步。单击"Done"按钮,PB将用户选择的所有选项保存到脚本文件(*.wce)中。当编译CE平台时,sysgen.bat批处理文件会调用cesysgen.bat批处理文件,cesysgen.bat读取*.wce文件的内容,根据此文件的内容来设置全部的环境变量。cesysgen.bat处理之后sysgen.bat调用nmake.exe 程序根据环境变量来编译模块(针对源码文件,如C语言文件)、复制模块(针对非源码文件,如DLL等)。具体编译操作以及编译时PB所做的工作我将在下一篇文章中详细讲述。 


推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • win10系统搭建Java开发环境的操作方法
    本文介绍了win10系统搭建Java开发环境的详细操作方法,包括下载Windows10系统和Java SE,安装Java开发环境,设置变量等步骤。操作简单,只需按照指导进行即可。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
author-avatar
mobiledu2502898417
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有