嵌入式开发:WinCE6.0LPC3250串口驱动程序

时间:2021-02-07 00:13 作者:必威体育官网登录
本文摘要:章节目录 WindowsCE是一个扩大开放的、可升級、可减少的32位系统动态性嵌入式操作系统,具有可信性好、实用性低、核心体型小的特性,广泛运用于工业生产操控、信息家电、移动通信技术、汽车电子产品、本人电子器件日用品等行业。

必威体育官方登录平台

章节目录  WindowsCE是一个扩大开放的、可升級、可减少的32位系统动态性嵌入式操作系统,具有可信性好、实用性低、核心体型小的特性,广泛运用于工业生产操控、信息家电、移动通信技术、汽车电子产品、本人电子器件日用品等行业。最近版本号WindowsEm-beddedCE6.0于二零零六年十一月发布,其特性有:仅次过程总数到32K,且每一个过程有仅次2GB的虚拟内存设置室内空间;将重要的驱动软件、系统文件和用户界面管理工具挪到了核心中,大大减少了CPU在核心态和客户态间变换造成 的特性损害等。LPC3250是NXP半导体公司(由Philips企业宣布创立)开售的具备矢量素材浮点协处理器的ARM926EJ-SCPU核心的微处理器。它具有比较丰富的外场控制模块,还包含七个UART,在其中4个是规范UART,此外3个是髙速UART,都具备64字节数的对接和发送至FIFO,最少可抵制的速度约921600b/s。

为了更好地构建功耗,LPC3250应用NXP半导体材料技术设备的开发设计来提升本质输出功率,并用以加强型的手机软件系统结构使根据输出功率管理方法的运用于得到 提升。在另外回绝性能卓越和功耗的嵌入式应用中,经营Win-dowsCE的LPC3250服务平台将不容易有非常好的行业前景,针对最常见到的串口的驱动器产品研发越来越至关重要。  1WindOWSCE的串口驱动器实体模型  根据WindowsCE有二种驱动软件实体模型:本设备驱动软件和流控制模块驱动软件。

串口驱动器就属于层次的流控制模块驱动软件。层次驱动软件将机器设备的驱动软件分为双层:服务平台相关驱动PDD(PlatformDependenceDriver)层和实体模型机器设备驱动器MDD(ModelDeviceDriver)层。

PDD层由特殊于等额的硬件配置机器设备或服务平台的编码组成,许多 情况下客户务必依据确立服务平台修改;MDD层包含服务平台涉及的编码,它根据构建一些电脑操作系统事先界定的控制模块来构建某一类机器设备的规范化作用,一般来说由微软中国获得。电脑操作系统与MDD层中间根据DDI(机器设备驱动器控制模块)进行互动。MDD层也构建了中断应急处置进程IST,并界定一些与PDD层的插口函数,这种插口函数称之为DDSI(机器设备驱动器服务项目控制模块)。

  用%_WinCEROOT%来答复WindowsCE的改装网站根目录,符合lsquo;550工业生产标准的串口驱动器源代码关键位于\%_WINCEROOT%\PUBLIC\COMMON\OAK\DRIVERS\SERIAL下,关键看表1列出的一些秘密文件。  如图所示1下图,串口应用软件根据设备管理器启用mdd.c中MDD层的规范流机器设备驱动器控制模块COM_XXX,在COM_XXX中根据建筑结构HW_INDEP_INFO中HWOBJ建筑结构启用串口硬件配置作业者函数HWxxx;随后在cserpdd.cpp中GetSeri-alObject函数根据HW_VTBL种类数组IoVTb1将HWxxx同构为Serxxx系列产品函数,Serxxx系列产品函数则启用CSerialPDD类中的组员函数(在其中的纯虚函数由CserialP-DD的承续类CP-dd16550构建,的确与物理学最底层作业者的是CPdd16550的数据信息组员CReg16550中的Write_XXX、Read_XXX函数);最终根据启用WRITE_PORT_UCHAR和READ_PORT_UCHAR系统软件函数来构建。

  2WinCE6.0下的LPC3250串口驱动软件产品研发  WindowsCE的串口驱动软件产品研发中最重要的是二点:配置串口涉及到的存储器和应急处置中断。配置存储器,还包含构建与物理学最底层作业者的函数,将存储器地址映射到核心过程的虚拟注册地址,在串口作业者的各有不同环节配置好各种各样存储器;应急处置中断,还包含将物理学中断同构为系统软件中断,将中断与恶性事件复位,中断再次出现时进行适度的中断应急处置。  LPC3250串口与lsquo;550工业生产标准的串口有差别,为了更好地保证 程序流程的实用性和尽量避免编码量,在构建LPC3250串口驱动软件时,务必承续CPdd16550和CReg16550类,依据具体的硬件配置特点构建他们的纯虚函数并扩展其元魂函数的作用,配置硬件配置涉及到的存储器和修改涉及到编码。

最先构建CReg16550的承续类CRegLPC32xx,关键构建与物理学最底层作业者的函数Write_xxx和Read_xxx,对串口存储器进行存取数据。这儿要注意的是LPC3250串口寄存器地址间距是32位系统,而不是规范的8位;CPdd16550的承续类Clpc32xxPdd16550UART实质還是个抽象类,另外为规范串口和髙速串口服务项目,要新的构建Init、GetDivisorO-{Rate、GetWaterMark、MapHardware、CreateHardwareAc-cess、CreateSerialObject、DeleteSerialObject等函数,别的的函数能够必需启用CPdd16550的组员函数,只务必修改涉及到串口存储器的宏定义。  在Clpc32xxPdd16550UART的Init函数中,GetIsrInfo以串口的Active注册表文件键为根据查证物理学中断号,并存留在DDKISRINFO建筑结构的dwlrq组员中。

KernelloCon-trol函数将物理学中断号转换为逻辑性中断号,满足条件就将逻辑性中断号回写到注册表文件中。涉及到编码以下:  然后启用父类CPdd16550的Init函数,开创中断服务项目进程(IST)恶性事件,并根据InterruptInitialize函数将恶性事件与逻辑性中断号关系一起,最终启用CreateHardwareAccess和MapHardware函数将串口恩详细地址及涉及到存储器片内地址映射到核心过程的虚拟注册地址。


本文关键词:必威体育官网登录,嵌入式,开发,WinCE6.0LPC3250,串口,驱动程序,章节

本文来源:必威体育官网登录-www.piratemarrt.com