도와주세요!!
글 수 15,339
2006.01.16 14:40:51 (*.117.187.83)
6716
스켈레톤 드라이버 기반으로 커널 2.4에서..
89S52 와 필립스 PDIUSBD12D USB 칩을 이용해서
16 * 16 LED에 좌표점을 찍는 H/W에 대한 USB 디바이스 드라이버 계발중인데요
우선 리눅스에선 돌아가구요..
EZ-X5와 EZ-PI보드상에서 안돌아가고 저런 에러메시지떠서 그렇습니다.
꼭 알려주세요
그리고 printk는 리눅스상에서 에러가 나지 않아서
미니컴상에서는 볼수 없지 않나요?
...................................................................................................................
>
> 정확히는 probe 함수의 포인터가 있는 구조체를 등록하는 함수 usb_register() 함수이구요..
> 생각으로는 __init 모듈초기화함수에서 에러가 나는게 아닌가 예상되네요
>
> 혹시 하시는 드라이버가 무엇인가요??
>
>
>>디바이스를 EZ-PI USB 호스트에 연결을 하였을 때
>>
>>드라이버에서 제일먼저 실행되는 부분이 probe 함수 아닌가요???
>>
>>그래서 probe 함수 에서 해보았는데 함수 자체를 들어가지 않는것 같습니다.
>>
>>그렇다면 어떤 부분을 확인해 봐야하는지
>>
>>알려주실수 있으세요????
>>
>>부탁드립니다. 시연이 얼마 남지 않았는데 다른건 다만들었는데..이것만 안돼서요....ㅠㅠ
>>>
>>> 컴파일 하신 드라이버가 올라오면서 에러가 난것 같군요
>>> 직접 올리신 드라이버에서 메모리를 엑세스 하는 부분에서 에러입니다
>>> printk 문장으로 디버깅 하셔야 겟네요.. 정확히 어디에서 에러가 난다는 말은 못해드립니다.
>>> 라인디버깅으로 하세요 ^^
>>>
>>>
>>>>에러메세지가 이것입니다... 제발 답변좀 부탁합니다.. ^^
>>>>
>>>>================== error msg ================================
>>>>
>>>>[root@ez-x5 nfs]$ hub.c: new USB device SL811-1, assigned address 2
>>>>Unable to handle kernel paging request at virtual address 626d656f
>>>>mm = c0186920 pgd = c0004000
>>>>*pgd = a0003041, *pmd = a0003041, *pte = 14c000a3, *ppte = 14c00013
>>>>Internal error: Oops: 0
>>>>CPU: 0
>>>>pc : [<c00ea984>] lr : [<c00eabec>] Not tainted
>>>>sp : c03a7f34 ip : 626d656d fp : 00000000
>>>>r10: 00000000 r9 : c489e334 r8 : c03b4a00
>>>>r7 : 00000000 r6 : c3f63260 r5 : 626d656d r4 : c3f63260
>>>>r3 : 00000001 r2 : 626d656d r1 : c3f63260 r0 : c03b4a00
>>>>Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment kernel
>>>>Control: 397F Table: A0010000 DAC: 0000001D
>>>>Process khubd (pid: 8, stack limit = 0xc03a6368)
>>>>Stack: (0xc03a7f34 to 0xc03a8000)
>>>>7f20: c489e354 c00eabec 00000000
>>>>7f40: c03b4a24 c0193b9c 00000001 00000018 c03b4a00 00000000 00000001 00000000
>>>>7f60: 00000000 c037c3a0 c00eb08c 00000000 c03b4a00 00000008 00000000 c00ecf04
>>>>7f80: 00000008 c03b4a00 c03b4a04 c03b4200 c00ee7f4 c3f631e0 c037c3c8 00000000
>>>>7fa0: c037c3a0 c03b4200 c03a7fbc 69052d06 c03a7fbe 00000000 c00eebbc 01010001
>>>>7fc0: c0193c04 c03a7fdc c01bc554 c0199d68 c0186bb4 a00141f0 c00eec74 00000000
>>>>7fe0: c03a6000 00000000 00000000 c00eec28 c03cc000 c001cd98 0a00000d e59d001c
>>>>Backtrace: no frame pointer
>>>>Code: e92d4010 e1a0c002 e1a04001 0a000052 (e1d210b2)
>>>>
>>>>============================================================
>>>>
>>>>
>>>>
>>>>>
>>>>> 에러메세지를 보여주세요.. 너무 많은 에러가 발생할수 있어서,,,
>>>>>
>>>>>
>>>>>>우선 리눅스(gcc)용 디바이스 드라이버를 완성하여
>>>>>>
>>>>>>돌아가는것을 확인했습니다..
>>>>>>
>>>>>>그 후.. 다시 암용 gcc(armv5l)로 컴파일한 후에..
>>>>>>
>>>>>>1. 암용 보드에서 mknod 명령을 이용하여 mknod file c 180 255 로 등록하였습니다.
>>>>>>
>>>>>>2. insmod file.o로 하여 장치를 등록하였습니다..
>>>>>>
>>>>>>3. 그 후 완성된 하드웨어를 USB-HOST인. EZ-PI보드에 연결하였습니다..
>>>>>>
>>>>>>연결후에 에러가 뜨는데. 이 과정이 USB디바이스 드라이버 완성 후 보드에 올리는 과정인지
>>>>>>
>>>>>>궁금합니다.. 답변좀 주세요
>>>>>
>>>>
>>>
>>
>
89S52 와 필립스 PDIUSBD12D USB 칩을 이용해서
16 * 16 LED에 좌표점을 찍는 H/W에 대한 USB 디바이스 드라이버 계발중인데요
우선 리눅스에선 돌아가구요..
EZ-X5와 EZ-PI보드상에서 안돌아가고 저런 에러메시지떠서 그렇습니다.
꼭 알려주세요
그리고 printk는 리눅스상에서 에러가 나지 않아서
미니컴상에서는 볼수 없지 않나요?
...................................................................................................................
>
> 정확히는 probe 함수의 포인터가 있는 구조체를 등록하는 함수 usb_register() 함수이구요..
> 생각으로는 __init 모듈초기화함수에서 에러가 나는게 아닌가 예상되네요
>
> 혹시 하시는 드라이버가 무엇인가요??
>
>
>>디바이스를 EZ-PI USB 호스트에 연결을 하였을 때
>>
>>드라이버에서 제일먼저 실행되는 부분이 probe 함수 아닌가요???
>>
>>그래서 probe 함수 에서 해보았는데 함수 자체를 들어가지 않는것 같습니다.
>>
>>그렇다면 어떤 부분을 확인해 봐야하는지
>>
>>알려주실수 있으세요????
>>
>>부탁드립니다. 시연이 얼마 남지 않았는데 다른건 다만들었는데..이것만 안돼서요....ㅠㅠ
>>>
>>> 컴파일 하신 드라이버가 올라오면서 에러가 난것 같군요
>>> 직접 올리신 드라이버에서 메모리를 엑세스 하는 부분에서 에러입니다
>>> printk 문장으로 디버깅 하셔야 겟네요.. 정확히 어디에서 에러가 난다는 말은 못해드립니다.
>>> 라인디버깅으로 하세요 ^^
>>>
>>>
>>>>에러메세지가 이것입니다... 제발 답변좀 부탁합니다.. ^^
>>>>
>>>>================== error msg ================================
>>>>
>>>>[root@ez-x5 nfs]$ hub.c: new USB device SL811-1, assigned address 2
>>>>Unable to handle kernel paging request at virtual address 626d656f
>>>>mm = c0186920 pgd = c0004000
>>>>*pgd = a0003041, *pmd = a0003041, *pte = 14c000a3, *ppte = 14c00013
>>>>Internal error: Oops: 0
>>>>CPU: 0
>>>>pc : [<c00ea984>] lr : [<c00eabec>] Not tainted
>>>>sp : c03a7f34 ip : 626d656d fp : 00000000
>>>>r10: 00000000 r9 : c489e334 r8 : c03b4a00
>>>>r7 : 00000000 r6 : c3f63260 r5 : 626d656d r4 : c3f63260
>>>>r3 : 00000001 r2 : 626d656d r1 : c3f63260 r0 : c03b4a00
>>>>Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment kernel
>>>>Control: 397F Table: A0010000 DAC: 0000001D
>>>>Process khubd (pid: 8, stack limit = 0xc03a6368)
>>>>Stack: (0xc03a7f34 to 0xc03a8000)
>>>>7f20: c489e354 c00eabec 00000000
>>>>7f40: c03b4a24 c0193b9c 00000001 00000018 c03b4a00 00000000 00000001 00000000
>>>>7f60: 00000000 c037c3a0 c00eb08c 00000000 c03b4a00 00000008 00000000 c00ecf04
>>>>7f80: 00000008 c03b4a00 c03b4a04 c03b4200 c00ee7f4 c3f631e0 c037c3c8 00000000
>>>>7fa0: c037c3a0 c03b4200 c03a7fbc 69052d06 c03a7fbe 00000000 c00eebbc 01010001
>>>>7fc0: c0193c04 c03a7fdc c01bc554 c0199d68 c0186bb4 a00141f0 c00eec74 00000000
>>>>7fe0: c03a6000 00000000 00000000 c00eec28 c03cc000 c001cd98 0a00000d e59d001c
>>>>Backtrace: no frame pointer
>>>>Code: e92d4010 e1a0c002 e1a04001 0a000052 (e1d210b2)
>>>>
>>>>============================================================
>>>>
>>>>
>>>>
>>>>>
>>>>> 에러메세지를 보여주세요.. 너무 많은 에러가 발생할수 있어서,,,
>>>>>
>>>>>
>>>>>>우선 리눅스(gcc)용 디바이스 드라이버를 완성하여
>>>>>>
>>>>>>돌아가는것을 확인했습니다..
>>>>>>
>>>>>>그 후.. 다시 암용 gcc(armv5l)로 컴파일한 후에..
>>>>>>
>>>>>>1. 암용 보드에서 mknod 명령을 이용하여 mknod file c 180 255 로 등록하였습니다.
>>>>>>
>>>>>>2. insmod file.o로 하여 장치를 등록하였습니다..
>>>>>>
>>>>>>3. 그 후 완성된 하드웨어를 USB-HOST인. EZ-PI보드에 연결하였습니다..
>>>>>>
>>>>>>연결후에 에러가 뜨는데. 이 과정이 USB디바이스 드라이버 완성 후 보드에 올리는 과정인지
>>>>>>
>>>>>>궁금합니다.. 답변좀 주세요
>>>>>
>>>>
>>>
>>
>