一个内核里面可以有两个IIC驱动么?

宇帆 2010-11-11 01:41:56
平台:WIN-CE 5.0 S3C2440
本来内核里面已经有了个Camera驱动了,但是Camera是IIC接口的,所以也就有IIC驱动,但是后来又写了个针对ZLG7290的IIC驱动,测试发现,两个驱动不能同时使用。是在哪里需要设置,还是就不能一块使用


摄像头驱动用的IIC注册表如下

IF BSP_NOI2C !
;; I2C Bus Driver
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\I2C]
"Prefix"="I2C"
"Dll"="I2C.DLL"
"Order"=dword:0
"Index"=dword:0
"Mode"=dword:1 ; Mode: 0 = POLLING, 1 = INTERRUPT
"SlaveAddress"=dword:0 ; Bus Driver's Slave Address
"FriendlyName"="I2C Bus Driver"
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" ; Power-manageable generic
ENDIF BSP_NOI2C !


ZLG用的IIC驱动注册表如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\ZLG]
"Dll"="ZLG.dll"
"Prefix"="ZLG"
"Index"=dword:1
"order"=dword:0


...全文
377 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
loongembedded 2010-11-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 cfanlwn 的回复:]
最后得到思路。借用Camera的思路,修改ZLG的驱动,让ZLG驱动调用I2C驱动,继续----

多谢各位了~
[/Quote]
是的,大体思路就是这样的。
宇帆 2010-11-16
  • 打赏
  • 举报
回复
最后得到思路。借用Camera的思路,修改ZLG的驱动,让ZLG驱动调用I2C驱动,继续----

多谢各位了~
yu_baobei 2010-11-13
  • 打赏
  • 举报
回复
你好 加我QQ181173354 我在做zlg7290
xiaosan5871 2010-11-12
  • 打赏
  • 举报
回复
用同一个IIC应该不会冲突的吧,是一个个带地址的包。地址不对应,是不会响应的

如果两个IIC,而且不是同一根线的话,有INDEX的,也不会冲突吧
宇帆 2010-11-12
  • 打赏
  • 举报
回复
呵呵,现在只有在修改ZLG7290的驱动,用他来调用写好的IIC驱动。
licaiyuren 2010-11-12
  • 打赏
  • 举报
回复
奥,想起来了,当时看关于IIC的东西时提到过设备的从地址。
谢谢!
加油啊,牛人
宇帆 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 licaiyuren 的回复:]

你的板子有俩IIC接口?然camera占一个,然后还有一个?
[/Quote]

一个IIC接口啊,但是IIC可以挂接好多外围器件啊,他们的从机地址是不一样的嘛
loongembedded 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 licaiyuren 的回复:]
刚开始学习wince的camera时候,就看过此牛女的camera开发了,哈哈,不错

我仔细看了一下,我的BSP中的camera驱动中调用的IIC驱动,也不是什么标准的流驱动,费好大的功夫看的

但是,也是一个独立的IIC啊,可能就是别的DLL调用的时候不便。

你的板子有俩IIC接口?然camera占一个,然后还有一个?
[/Quote]
我的CPU是S3C2443,只支持一个IIC接口,但是通过这个IIC接口可以控制多个带有IIC接口的外围设备啊。
licaiyuren 2010-11-11
  • 打赏
  • 举报
回复
刚开始学习wince的camera时候,就看过此牛女的camera开发了,哈哈,不错

我仔细看了一下,我的BSP中的camera驱动中调用的IIC驱动,也不是什么标准的流驱动,费好大的功夫看的

但是,也是一个独立的IIC啊,可能就是别的DLL调用的时候不便。

你的板子有俩IIC接口?然camera占一个,然后还有一个?

loongembedded 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cfanlwn 的回复:]
现在是 Camera里面调用的IIC驱动,不是写的标准的IIC,只是针对Camera的,如果ZLG7290的也要调用,这样两个都需要修改了,工作量更大了
[/Quote]
WINCE5.0+2440的标准的BSP包中有一个单独的IIC驱动的,这个驱动一般是被其他驱动(不如camera驱动)引用来控制带有IIC接口的外设。
宇帆 2010-11-11
  • 打赏
  • 举报
回复
现在是 Camera里面调用的IIC驱动,不是写的标准的IIC,只是针对Camera的,如果ZLG7290的也要调用,这样两个都需要修改了,工作量更大了
loongembedded 2010-11-11
  • 打赏
  • 举报
回复
I2C、SPI之类可共享的总线通常都有一个单独的驱动。应该是一个I2C驱动,一个Camera驱动,一个ZLG驱动,后2个调用之前的I2C驱动。
---》是的,基于这样的思想,也就是参考camera驱动来写ZLG7290驱动,而这个驱动要借助与IIC驱动来对2LG7290操作。
lailzhihou 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 seemknow 的回复:]
I2C、SPI之类可共享的总线通常都有一个单独的驱动。应该是一个I2C驱动,一个Camera驱动,一个ZLG驱动,后2个调用之前的I2C驱动。
[/Quote]
这个才是比较好的做法
宇帆 2010-11-11
  • 打赏
  • 举报
回复
测试发现,注册表先加载谁,谁就能正常工作
宇帆 2010-11-11
  • 打赏
  • 举报
回复
我ZLG里面写的是IIC的流接口驱动
宇帆 2010-11-11
  • 打赏
  • 举报
回复
ZLG还是申请IIC的中断
seemknow 2010-11-11
  • 打赏
  • 举报
回复
I2C、SPI之类可共享的总线通常都有一个单独的驱动。应该是一个I2C驱动,一个Camera驱动,一个ZLG驱动,后2个调用之前的I2C驱动。
你这个ZLG驱动里申请谁的中断?应该是ZLG的吧
宇帆 2010-11-11
  • 打赏
  • 举报
回复
Camera驱动中 打印出来信息

I2C Init
IIC IRQ mapping: [IRQ:27->sysIRQ:20].
宇帆 2010-11-11
  • 打赏
  • 举报
回复
难道是ZLG_Init函数里面 从 OAL 请求一个 SYSINTR 值 这里出现差错了,但是打印信息,还是出来
INFO: I2C Bus: Mapped Irq 0x1b to SysIntr 0x17.了

19,519

社区成员

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

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