[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 メーリングリストの案内