您现在的位置:智能制造网>技术首页>技术交流

十个以上串口加载问题

2013年04月16日 22:08来源:上海安嵌信息科技有限公司 >>进入该公司展台人气:1151

 

    在Embedded CE系统开发过程中,一般设备驱动都只加载一次,偶尔有些需要重复加载。但针对串口,由于本身的通用性,蓝牙、IC、IrDA、无线Modem、RFID、……等等外设都可能用到串口。主板芯片本身往往自带有多个物理串口设备。而且,有可能存在多路复用的问题。所以在系统定制过程中,很容易的超过十个串口。
    一般注册表中可以直接串口号,具体就是使用"Index" dword。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\XXX]
    "Index"=dword:a
    ...
    在通常的模式下,如果这样,在加载的时候会报参数错误。经过查证(具体在X:\WINCE600\PRIVATE\WINCEOS\COREOS\DEVICE\DEVCORE\devload.c),在驱动加载的时候,它会先判断Index是否超过9,如果超过,即判断为参数错误(当初在这折腾了半天,还以为参数真设置错了)。
    重新修改其中的参数,将有关0~9的限制都去掉(不知道会不会死人,呵呵),再次编译,驱动已经能够成功加载,注册表信息能够查看到对应的Name值已经是COM10:了,但还是没法打开COM10:。
    再次查看有关的论坛,在MSDN->Device File Names中,明确说了CreateFile的三种参数,亦即设备名称有三种表示方式:
    "COMX:",
    "\$device\COMX",
    "\$bus\PCMCIA_0_0_0"。
    其中*种方式只适合从0~9的设备名,亦即COM10:中10超出了设备命名规范,所以用CreateFile打开设备失败。
    使用第二种方式\$device\COM10,作为参数传递给CreateFile,成功打开COM口,通讯正常,搞定。
    第三种是用在总线驱动上的,暂时没涉及到,略过,后续补充。
    
    经过整理,主要是在调用方式上,需要注意,正常的COMX:参数,X只从0~9,超过就会出错。而对于修改内核代码,使其加载正常的操作,目前还没发现有问题,暂时就这么放着吧,等哪天莫名的挂掉了再改回来

全年征稿/资讯合作 联系邮箱:1271141964@qq.com
  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。


编辑精选

更多


宣传样本推荐图书

旗下子站

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备



关于我们|本站服务|会员服务|企业建站|旗下网站|友情链接| 兴旺通| 产品分类浏览|产品sitemap

智能制造网 - 工业4.0时代智能制造领域“互联网+”服务平台

Copyright gkzhan.comAll Rights Reserved法律顾问:浙江天册律师事务所 贾熙明律师

客服热线:0571-87756395加盟热线:0571-87759904媒体合作:0571-89719789

客服部:编辑部:展会合作:市场部:

关闭