当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]Windows CE.NET在S3C2410处理器上的移植简介

本文分析了嵌入式操作系统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浏览功能。

  Platform Builder 4。2是微软提供给Windows CE。NET开发人员进行基于Windows CE。NET平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试Windows CE。NET操作系统平台的工具,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时开发人员还可以利用Platform Builder来进行驱动程序和应用程序项目的开发等。

  2 硬件平台

  HHARM9-EDU开发平台是由华恒公司开发的一套用于嵌入式系统教学的平台,它由核心板和底板组成。核心板上集成了Samsung S3C2410处理器、16 M 的FLASH 和64 M SDRAM。Samsung的S3C2410处理器是一款高性价比、低功耗、体积小、高性能、高集成度的微处理器,它采用203 MHz的ARM920T内核,集成了16 KB指令缓存和16 KB数据缓存,并利用MMU实现对虚拟内存的管理,LCD控制器支持STN屏或FTT屏,支持NAND flash。核心板功能模块见图2。

  

[!--empirenews.page--]
 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内核和目标硬件之间的通信,包括处理中断、定时器等。[!--empirenews.page--]
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提供的源码基础上进行修改。对于有新的硬件设备情况下就要对其进行重新编写。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭