扩展串口芯片16550中断问题

wangxin_801115 2009-09-27 01:30:49
请教各位:
我的串口芯片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号 跟事件捆绑,

请问串口的中断是怎么触发的,怎么调用的 ,驱动程序怎么得到的? 注册表中的中断号传给谁了??
...全文
300 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxin_801115 2009-09-30
  • 打赏
  • 举报
回复
我在注册表中:
[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大侠!
paul_chao 2009-09-28
  • 打赏
  • 举报
回复
1. 印象中, 中断与 DeviceArrayIndex 无关.

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

3. "SysIntr"=dword:XYZ-0x10, 须请 LZ 在 oal 中的 BSPIntrInit 加入类似
OALIntrStaticTranslate(SYSINTR_UART4, IRQ_EINT3);
的指令, 并在 bsp_cfg.h 中加入
#define SYSINTR_UART4 (SYSINTR_FIRMWARE+XYZ)
,

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

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

Paul, Chao @ Techware

wangxin_801115 2009-09-27
  • 打赏
  • 举报
回复
顶!
wangxin_801115 2009-09-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xqhrs232 的回复:]
LZ是牛人啊,一个月不知道搞了多少东西啊!
[/Quote]

惭愧啊
什么都没搞明白!!
xqhrs232 2009-09-27
  • 打赏
  • 举报
回复
LZ是牛人啊,一个月不知道搞了多少东西啊!

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧