DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 149|回复: 0
打印 上一主题 下一主题

Windows CE.NET在S3C2410处理器上的移植

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 18:43:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ???? 本文分析了嵌入式操作系统Windows CE。NET的特点,并利用工具Platform. Builder 4。2完成了其在以ARM920T为核心的S3C2410处理器上的定制。
  1 Windows CE系统和Platform. Builder 4.2
  Windows CE是微软推出的一个32位、多线程、多任务的嵌入式操作系统,是微软专门为信息设备、移动应用、嵌入式应用等设计的嵌入式模块型操作系统。用户可选择、组合和配置Windows CE。NET的模块和组件来创建用户版的操作系统。
  Windows CE。NET是WindOWS CE 3。0的后继产品,其系统组成如图1所示。Windows CE。NET为快速建立下一代智能移动和小内存占用的设备提供了一个良好的实时操作系统,它具备完整的操作系统特性集和针对端对端开发的环境,并包括了定制设备所需要的一切,例如,联网能力、实时性、小内存占用、多媒体以及Web浏览功能。




  3 Windows CE. NET系统移植
  3.1 移植流程
  从根本上说,Windows CE。NET的移植过程也就是改写BSP的过程。BSP又称板级支持包,它是一个包括启动程序、OEM适配层程序(OAL)、标准开发板(SDB)和相关硬件设备的驱动程序的软件包。BSP是基于Windows CE。NET平台系统的主要部分。操作系统移植步骤为:
  1)对操作系统进行裁减,配置各个组件并且修改相关的配置文件;
  2)开发目标设备系统上的设备驱动程序,建立定制的CE操作系统映像文件;
  3)将目标文件下载到目标设备上进行调试;
  4)定制操作系统内核后,导出平台SDK,供在Embedded Visual C++中开发上层应用软件。
  移植流程见图3




  开发工具Platform. Builder自身就提供了多种目标板的BSP。如果用户的目标板和Platform. Builder提供的相同,那么只需要重新编译生成相应的系统镜像下载到目标板即可。但是实际情况更多的可能是处理器相同,而板上的外围设备接口不同,这时候只有修改Platform. Builder中相同或相近的处理器的BSP来生成一个新的BSP,这样就可以大大减少BSP的研发周期。
  3.2 基于S3C2410板的BSP开发
  BSP的开发主要包括Bootloader、OAL、本地驱动程序的开发以及一些文件的配置 。
  1)Bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。它存放于目标平台的非易失性存储介质中,如ROM 或Flash。本文移植使用的是华恒公司提供的ppcboot。
  2)OAL即设备商适配层中位于Windows CE内核和目标硬件平台之间的一个代码层。开发OAL的目的是为了实现Windows CE。NET内核和目标硬件之间的通信,包括处理中断、定时器等。
  3)Device Drivers(驱动程序)是指能够管理虚拟或者物理设备、协议、服务等的一段软件模块,操作系统通过驱动程序直接和硬件打交道。设备驱动设计的具体步骤是通过Platform. Builder创建一个新的平台,然后根据硬件平台的需要插入和移除驱动,需要修改的文件有Platform。Bib,Platform。reg及驱动程序源代码等。下面以LCD驱动程序源码为例,根据华恒的参考资料,需要对PB的原有驱动进行如下修改:
  WORD TempBuffer[241][320]; // 改后buffer的大小
  S3C2410DISP::S3C2410DISP(void)
  {
  RETAILMSG(0,(TEXT("++S3C2410DISP::S3C2410DISP ")));
  //setup up display mode related cONstants
  m_nScreenWidth=240; //屏幕宽由原来的480改为240
  m_nScreenHeight=320; //屏幕高由原来的640改为现在的320
  m_colorDepth=16;
  m_cbScanLineLength=m_nScreenWidth*2;
  m_frameBufferSize=m_nScreenHeight*m_cbScanLineLength;
  //memory map register access window ,frAME. buffer,and program LCD controller InitializeHardware();
  寄存器设置是由D:WINCE420PLATFORMSMDk2410KERNELHALcfw。c中的InitDisplay函数进行设置。驱动中通过读注册表中的相应键的值来获得framebuffer的地址。
  [HKEY_LOCAL_MACHINEDriverS3C2410CONFIG]
  "DisplayDll"="s3c2410disp。dll"
  "LCDVirtualFrameBase"=dword:ac100000
  "LCDPhysicalFrameBase"=dword:30100000
  4)平台文件的配置。配置文件包括源代码配置文件和操作系统镜像配置文件。源代码配置文件主要是告诉Build工具需要用到的路径、C或Visual C++的源文件以及生成什么类型的二进制文件等,包括Dirs、Sources、Makefile文件等。操作系统镜像配置文件则主要用于给Makeimag工具生成操作系统镜像,包括。bib(二进制映像文件)、。reg(注册表文件)、。dat(文件系统描述文件)、。db(数据库文件)。本文中源代码配置文件只对配置文件做了相应的修改。
  利用上述生成的BSP,通过Platform. Builder创建一个新的平台,本文直接选择Mobile Handheld平台,接下来根据需要进行选择。最后在WINCE42OPUBLICplatformRelDirSAMSUNG_SMDK2410_ARMV4Release下得到NK。bin,对其进行压缩之后烧写到Flash中。同时导出平台的SDK,供在EVC上开发应用程序。
  3.3 在目标设备上操作系统镜像的调试
  开发板和PC机可以通过串行饼行端口、以太网和JTAG/BDM 来进行操作系统映像的下载。本文中,开发板同PC机接网线、串口线,设定超级终端,最后系统在开发板上运行。
  4 结束语
  本文简单介绍了Windows CE。NET在HHARM9-EDU 的移植过程,对于其他处理器平台,同样具有参考价值。Windows CE。NET在不同硬件平台上的移植主要是根据对应的硬件修改BSP的过程,驱动程序的设计是构建BSP的关键之一,在没有新的外设情况下,驱动的设计可以在PB提供的源码基础上进行修改。对于有新的硬件设备情况下就要对其进行重新编写。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-8 21:31 , 耗时 0.090177 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表