[Armadillo:03007] Re: Armadillo-500 leds-armadillo5x0をmodprobeできません。
g-kihara
email@hidden
2008年 6月 17日 (火) 14:39:01 JST
> もし、device fileをエントリーポイントにするのであれば、message.cの
> message_read()にarmadillo5x0_led_set()の中身を書いてみたらどうでしょう
> か?
さっそくトライしてみました。ledtest1_set( )をmessage.cに追加して、
下記のように
struct led_classdev cdev;
//led ON
strcpy(cdev.name,"led1");
ledtest1_set(&cdev,1);
をmessage_read()に追加して、
ボードに転送し,
1)modprobe デバイスドライバ名
2)mknod /dev/message c 00
3) cat /dev/message
を行ったところ、エラーになりました。
<1>Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = c0724000
と画面に出力されたのですが、エラー対処法を
ご教示ください。
----------------------------------------------------------------
【プログラム】
static int message_read(struct file *filp, char *buff, size_t count, loff_t
*pos)
{
size_t read_size;
struct led_classdev cdev;
if (count < strlen(msg) - *pos)
read_size = count;
else
read_size = strlen(msg) - *pos;
pr_debug("message_read: size = %d\n", read_size);
if (read_size) {
//led ON
strcpy(cdev.name,"led1");
ledtest1_set(&cdev,1);
copy_to_user(buff, &msg[*pos], read_size);
*pos += read_size;
}
return read_size;
}
------------------------------------------------------------------
【エラー】
[email@hidden (ttymxc0) /home/guest]# cat < /dev/message
<1>Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = c0724000
[00000000] *pgd=83e0a031, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#2]
Modules linked in: ledctrl_test1
CPU: 0
PC is at strcpy+0x18/0x24
LR is at message_read+0x6c/0x11c [ledctrl_test1]
pc : [<c0148c28>] lr : [<bf000138>] Not tainted
sp : c05b7f24 ip : c05b7f34 fp : c05b7f30
r10: c05b7f80 r9 : c05b6000 r8 : 00002000
r7 : 001b81f0 r6 : 00000010 r5 : 00002000 r4 : 00000000
r3 : 0000006c r2 : 00000000 r1 : bf000211 r0 : 00000000
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C5387F Table: 80724000 DAC: 00000015
Process busybox (pid: 2756, stack limit = 0xc05b6248)
Stack: (0xc05b7f24 to 0xc05b8000)
7f20: c05b7f58 c05b7f34 bf000138 c0148c1c c0e7a7c0 001b81f0
00002000
7f40: c05b7f80 c0026f64 00000000 c05b7f7c c05b7f5c c008de10 bf0000d8
c05b7fb0
7f60: c0e7a7c0 00000000 00000000 00000003 c05b7fa4 c05b7f80 c008e31c
c008dd68
7f80: 00000000 00000000 00000000 beedae44 00002000 001b81f0 00000000
c05b7fa8
7fa0: c0026dc0 c008e2dc beedae44 00002000 00000000 001b81f0 00002000
00000001
7fc0: beedae44 00002000 001b81f0 00000000 00000001 00000001 00000000
beedae44
7fe0: 00000000 beedaa9c 000024bc 40170cc0 60000010 00000000 00000000
00000000
Backtrace:
[<c0148c10>] (strcpy+0x0/0x24) from [<bf000138>] (message_read+0x6c/0x11c
[ledctrl_test1])
[<bf0000cc>] (message_read+0x0/0x11c [ledctrl_test1]) from [<c008de10>]
(vfs_read+0xb4/0x184)
[<c008dd5c>] (vfs_read+0x0/0x184) from [<c008e31c>] (sys_read+0x4c/0x80)
r7 = 00000003 r6 = 00000000 r5 = 00000000 r4 = C0E7A7C0
[<c008e2d0>] (sys_read+0x0/0x80) from [<c0026dc0>]
(ret_fast_syscall+0x0/0x2c)
r6 = 001B81F0 r5 = 00002000 r4 = BEEDAE44
Code: e24cb004 e1a02000 e4d13001 e3530000 (e4c23001)
Segmentation fault
[email@hidden (ttymxc0) /home/guest]#
------------------------------------------------------------------
以上、宜しくお願いいたします。
armadillo メーリングリストの案内