当前位置: 技术问答>linux和unix
驱动加载运行出错..........
来源: 互联网 发布时间:2016-08-28
本文导语: 最近一直在移植usb host驱动,从2.6.34移植到2.6.20 为了便于调试,我只先一步步移植非常基础的几部 但是一个错误 困扰了我很久, 这些错误发生在/usb/core/hcd.c 中,这些核心代码,我是一点都没有动的,有知...
最近一直在移植usb host驱动,从2.6.34移植到2.6.20
为了便于调试,我只先一步步移植非常基础的几部 但是一个错误 困扰了我很久,
这些错误发生在/usb/core/hcd.c 中,这些核心代码,我是一点都没有动的,有知道的可以指点一下,错误在哪里找出来呢。根据我具体的跟踪发现时出现在 get_hub_descriptor中的usb_control_msg函数中,但是与错误提示没有一点干系啊?
LR is at hcd_submit_urb+0x5a4/0x788 下一步也不会是这个啊。。。。。。。
为了便于调试,我只先一步步移植非常基础的几部 但是一个错误 困扰了我很久,
这些错误发生在/usb/core/hcd.c 中,这些核心代码,我是一点都没有动的,有知道的可以指点一下,错误在哪里找出来呢。根据我具体的跟踪发现时出现在 get_hub_descriptor中的usb_control_msg函数中,但是与错误提示没有一点干系啊?
LR is at hcd_submit_urb+0x5a4/0x788 下一步也不会是这个啊。。。。。。。
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub_configure strart
get_hub_descriptor strart
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c1e44000
[00000000] *pgd=21ee7031, *pte=00000000, *ppte=00000000
Internal error: Oops: 0 [#1]
Modules linked in: isp1362_hcd wireless power_protect cpuInfo bat_dect esf mcr ltpa245 beep
CPU: 0
PC is at __init_begin+0x3fff8000/0x34
LR is at hcd_submit_urb+0x5a4/0x788
pc : [] lr : [] Not tainted
sp : c1e9ba88 ip : bf0c89d0 fp : c1e9bb38
r10: 00000002 r9 : c1eb22c0 r8 : 0000000d
r7 : c1eb9400 r6 : 00000000 r5 : c1c2c980 r4 : 0000000d
r3 : 00000000 r2 : 00002900 r1 : 0000a006 r0 : c1eb9400
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 717F Table: 21E44000 DAC: 00000015
Process insmod (pid: 760, stack limit = 0xc1e9a198)
Stack: (0xc1e9ba88 to 0xc1e9c000)
ba80: c1e9bb00 0000000d 00000000 00000000 c1e9bb00 c1e9bac0
baa0: c1e9baac c003c194 00000011 c02576c4 c1e9bad8 c1e9bac0 c0043dcc c0043cbc
bac0: 00000000 c02574e4 c1e9a000 c1e9bae8 c1e9badc c0043f2c c0043d1c c1e9bb00
bae0: c1e9baec c0039ff0 c0043f18 00000001 c021322c c1e9bb1c c1e9bb04 c0035028
bb00: c0126210 0000188b c02070e8 60000013 c1c2c980 00000002 c1f2ac00 00000000
bb20: c02159b8 00000001 00000010 c1e9bb60 c1e9bb3c c0156c14 c0155490 c1eb22a0
bb40: c1c2c980 00001388 c1e9bbb0 c1e9bb80 00000000 c1e9bbac c1e9bb64 c0156e28
bb60: c01569a8 c001f9e4 c0020dc0 318dfcd9 c03c0b48 c1e9bb98 c1e9bb84 c015690c
bb80: 00000000 c1e9bb84 c1e9bb84 c1eb22a0 0000000d fffffff4 c1f2ac00 80000180
|
这个Kernel panic还是比较清楚的:系统的整个调用顺序如下:
(isp1362_hcd模块)
get_hub_descriptor() -> usb_control_msg() -> hcd_submit_urb()
在hcd_submit_urb()时候,oops了。
BTW: 从2.6.34移植到2.6.20,为什么要这么做呢,2.6.20有什么不满足要求的么?还是你用的HCD芯片没有2.6.20 的驱动?
个人觉得,这种移植风险很高,工作量不好评估。
(isp1362_hcd模块)
get_hub_descriptor() -> usb_control_msg() -> hcd_submit_urb()
在hcd_submit_urb()时候,oops了。
BTW: 从2.6.34移植到2.6.20,为什么要这么做呢,2.6.20有什么不满足要求的么?还是你用的HCD芯片没有2.6.20 的驱动?
个人觉得,这种移植风险很高,工作量不好评估。
|
哪个参数为空
或者是从某个寄存器获取的值不正常(为空)
导致的?
这种问题8分靠猜
或者是从某个寄存器获取的值不正常(为空)
导致的?
这种问题8分靠猜