我编写了一个ADC转换的驱动程序,编译没有错误,在开发板上安装也没有提示错误
但是我在执行应用程序时,出现以上错误,问一下怎么回事?
我的执行过程如下:
[...... @mini2440] insmod ADCdriver.ko
[ ] insmod ok ,the major is 221
[ ] mknod /dev/mini2440_adc c 221 0
[ ] ./app_adc 这个是应用程序,执行完这个就出现一情况
./app_adc
Read ADC Device failed!
Unable to handle kernel NULL pointer dereference at virtual address 00000004
pgd = c3ac8000
[00000004] *pgd=33acf031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
last sysfs file: /sys/devices/virtual/vc/vcs2/dev
Modules linked in: ADCdriver
CPU: 0 Not tainted (2.6.32.2-FriendlyARM #5)
PC is at adc_read+0xc0/0x178 [ADCdriver]
LR is at adc_read+0x24/0x178 [ADCdriver]
pc : [<bf000188>] lr : [<bf0000ec>] psr: 40000013
sp : c3aebf18 ip : c3aebf18 fp : c3aebf54
r10: 00000000 r9 : c3aea000 r8 : c00300c8
r7 : becb5cfc r6 : 00000004 r5 : bf0004cc r4 : c3a9af00
r3 : 00000024 r2 : a0000013 r1 : 00000000 r0 : 00000001
Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: c000717f Table: 33ac8000 DAC: 00000015
Process app_adc (pid: 699, stack limit = 0xc3aea270)
Stack: (0xc3aebf18 to 0xc3aec000)
bf00: c3aea000 00000000
bf20: c3aebf54 c3aebf30 c0168540 c0168284 c3936280 c3a9af00 becb5cfc c3aebf78
bf40: 00000003 c00300c8 c3aebf74 c3aebf58 c009d22c bf0000d8 00000000 00000000
bf60: c3a9af00 00000003 c3aebfa4 c3aebf78 c009d344 c009d188 00000000 00000000
bf80: ffffffff 00000000 ffffffff 405aa0f9 00000000 40900000 00000000 c3aebfa8
bfa0: c002ff20 c009d308 405aa0f9 00000000 00000003 becb5cfc 00000004 becb5cfc
bfc0: 405aa0f9 00000000 40900000 00000003 00000000 00000000 00000000 becb5d24
bfe0: 00000000 becb5cf8 00008278 00013b8c 60000010 00000003 30546031 30546431
Backtrace:
[<bf0000c8>] (adc_read+0x0/0x178 [ADCdriver]) from [<c009d22c>] (vfs_read+0xb4/0
xe8)
r8:c00300c8 r7:00000003 r6:c3aebf78 r5:becb5cfc r4:c3a9af00
[<c009d178>] (vfs_read+0x0/0xe8) from [<c009d344>] (sys_read+0x4c/0x84)
r7:00000003 r6:c3a9af00 r5:00000000 r4:00000000
[<c009d2f8>] (sys_read+0x0/0x84) from [<c002ff20>] (ret_fast_syscall+0x0/0x28)
r6:40900000 r5:00000000 r4:405aa0f9
Code: e5943018 e2131b02 13e0000a 1afffff4 (e5913004)
---[ end trace bf4ed200be5e6874 ]---
Segmentation fault
这是驱动程序的问题,怎么解决啊?高手指点一下