3186|5

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

扩展串口芯片16550中断问题 [复制链接]

请教各位:
    我的串口芯片16550用了外部中断EINT3
    在注册表中:我需要加
    "SysIntr"=dword:3      串口4的中断为EINT3
    "MeMBase"=dword:0x20000000    串口4的IO空间首地址为0x20000000
    "IoLen"=dword:8               串口4的IO空间长度为8个字节
    "DeviceArrayIndex"=dword:4    串口4的索引,是4的由来
    "Order"=dword:1               串口4驱动的加载顺序
    "DeviceType"=dword:0          串口4的设备类型
    "DevConfig"=hex: 10,00 ....   串口4在与Modem设备通讯时的配置,如波特率、奇偶校检等
    "FriendlyName"="COM4:"        串口4在拨号程序中显示的名字
    "Tsp"="Unimodem.dll"          串口4被用于与Modem设备通讯的时候要加载的TSP(TAPIServiceprovider)DLL
     "Prefix"="COM"               串口4的流接口的前缀
    "Dll"="com16550.Dll"          串口4的驱动程序DLL

可是我在驱动中并没有找到读取注册表信息获得中断号的地方

唯一一个跟中断相关的,并且从注册表读取的却是DeviceArrayIndex
并且 把这个 DeviceArrayIndex号 跟事件捆绑,

请问串口的中断是怎么触发的,怎么调用的 ,驱动程序怎么得到的? 注册表中的中断号传给谁了??

最新回复

我在注册表中: [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SERIAL4]    "IRQ"=dword:12  ;(SYSINTR_FIRMWARE+2)                                   这里用IRQ因为驱动中读的就是IRQ这个字串、                                        会不会驱动中直接用的物理中断号呢??    "IoBase"=dword:20000000    "IoLen"=dword:8    "DeviceArrayIndex"=dword:4    "Prefix"="COM"    "Dll"="com16550.Dll"    "Order"=dword:1    "FriendlyName"="COM4:"    "Index"=dword:4加上了这句 我在C:\WINCE500\PLATFORM\SMDK2416\Src\Inc\bsp_cfg.h中加了      #define SYSINTR_UART4           (SYSINTR_FIRMWARE+2)    在C:\WINCE500\PLATFORM\SMDK2416\Src\Kernel\Oal\intr.c的BSPIntrInit中     加了OALIntrStaticTranslate(SYSINTR_UART4, IRQ_EINT3); 我没有找到SYSINTR_FIRMWARE的定义,我看注册表中有个       "SysIntr"=dword:11                ; (SYSINTR_FIRMWARE+1) 所以“IRQ”=dword:12 这个应该没问题吧 ! 谢谢paul_chao大侠!  详情 回复 发表于 2009-9-30 13:04
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
LZ是牛人啊,一个月不知道搞了多少东西啊!
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 xqhrs232 的回复:
LZ是牛人啊,一个月不知道搞了多少东西啊!


惭愧啊
什么都没搞明白!!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
顶!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
1. 印象中, 中断与 DeviceArrayIndex 无关.

2. "COM4:", 则请 LZ 加入 Index=dword:4(not DeviceArrayIndex=dword:4), 不然它有可能会变成 "COM1:" or "COM2:"...

3. "SysIntr"=dword:XYZ-0x10, 须请 LZ 在 oal 中的 BSPIntrInit 加入类似
  1. #define SYSINTR_UART4 (SYSINTR_FIRMWARE+XYZ)
复制代码
,

4. EINT3 的 GPIO 设定, 请自行设好.

看来 LZ 是在用 Samsung 的 cpu, 不知您老的 PXA270 完成了吗?? 真是厉害啊..

Paul, Chao @ Techware

 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
我在注册表中:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SERIAL4]
   "IRQ"=dword:12  ;(SYSINTR_FIRMWARE+2)
                                  这里用IRQ因为驱动中读的就是IRQ这个字串、
                                       会不会驱动中直接用的物理中断号呢??
   "IoBase"=dword:20000000
   "IoLen"=dword:8
   "DeviceArrayIndex"=dword:4
   "Prefix"="COM"
   "Dll"="com16550.Dll"
   "Order"=dword:1
   "FriendlyName"="COM4:"
   "Index"=dword:4加上了这句

我在C:\WINCE500\PLATFORM\SMDK2416\Src\Inc\bsp_cfg.h中加了
     #define SYSINTR_UART4           (SYSINTR_FIRMWARE+2)
   在C:\WINCE500\PLATFORM\SMDK2416\Src\Kernel\Oal\intr.c的BSPIntrInit中
    加了OALIntrStaticTranslate(SYSINTR_UART4, IRQ_EINT3);
我没有找到SYSINTR_FIRMWARE的定义,我看注册表中有个
      "SysIntr"=dword:11                ; (SYSINTR_FIRMWARE+1)
所以“IRQ”=dword:12 这个应该没问题吧 !
谢谢paul_chao大侠!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表