天嵌 ARM开发社区

 找回密码
 注册
查看: 3680|回复: 7

led-player问题

[复制链接]
scorpius 发表于 2011-12-12 16:44:26 | 显示全部楼层 |阅读模式
用光盘上得源程序,下载到开发板后运行,却出现下面问题
Unable to handle kernel paging request at virtual address 2db136a4
pgd = c3990000
[2db136a4] *pgd=00000000
Internal error: Oops: 5 [#2]
Modules linked in: EmbedSky_leds(P)
CPU: 0    Tainted: P      D     (2.6.30.4-EmbedSky #13)
PC is at s3c2410_gpio_setpin+0x24/0x44
LR is at EmbedSky_leds_ioctl+0x3c/0x68 [EmbedSky_leds]
pc : [<c002ea2c>]    lr : [<bf000050>]    psr: 60000093
sp : c39adebc  ip : 2db136a0  fp : c39adecc
r10: 00000000  r9 : c39ac000  r8 : c0025008
r7 : 00000004  r6 : 00000000  r5 : 00000004  r4 : 60000013
r3 : 60000093  r2 : 00000000  r1 : 00000001  r0 : 65626d45
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: c000717f  Table: 33990000  DAC: 00000015
Process led-player (pid: 437, stack limit = 0xc39ac268)
Stack: (0xc39adebc to 0xc39ae000)
dea0:                                                                00000000
dec0: c39adee4 c39aded0 bf000050 c002ea18 c39b0880 00000004 c39adf04 c39adee8
dee0: c0091eec bf000024 00000003 c39b0880 00000003 00000004 c39adf7c c39adf08
df00: c00921c0 c0091e84 00000448 000a87a8 0006b196 c0391248 c39adf44 c39adf28
df20: c004f7ec c39ac000 be8a9ce8 00000000 00000000 be8a9ce8 00000008 00000000
df40: 00000000 c0094148 c39adf70 00000000 ffffffff 00000003 00000004 00000000
df60: c39b0880 c0025008 c39ac000 00000000 c39adfa4 c39adf80 c00924a0 c0091f2c
df80: ffffffff 00000000 411e8480 00000000 412e8480 00000036 00000000 c39adfa8
dfa0: c0024e60 c0092470 411e8480 00000000 00000003 00000000 00000004 00000000
dfc0: 411e8480 00000000 412e8480 00000036 00000000 00000000 40025000 be8a9c4c
dfe0: 00000000 be8a9c38 000087bc 400f76ec 80000010 00000003 00000000 00000000
Backtrace:
[<c002ea08>] (s3c2410_gpio_setpin+0x0/0x44) from [<bf000050>] (EmbedSky_leds_ioctl+0x3c/0x68 [EmbedSky_leds])
r4:00000000
[<bf000014>] (EmbedSky_leds_ioctl+0x0/0x68 [EmbedSky_leds]) from [<c0091eec>] (vfs_ioctl+0x78/0x80)
r5:00000004 r4:c39b0880
[<c0091e74>] (vfs_ioctl+0x0/0x80) from [<c00921c0>] (do_vfs_ioctl+0x2a4/0x544)
r7:00000004 r6:00000003 r5:c39b0880 r4:00000003
[<c0091f1c>] (do_vfs_ioctl+0x0/0x544) from [<c00924a0>] (sys_ioctl+0x40/0x68)
[<c0092460>] (sys_ioctl+0x0/0x68) from [<c0024e60>] (ret_fast_syscall+0x0/0x2c)
r7:00000036 r6:412e8480 r5:00000000 r4:411e8480
Code: e121f003 e3c0c01f e1a0c0ac e28cc4fb (e59c3004)
---[ end trace 89c7ec26c036f3a0 ]---
Segmentation fault

请教下,这是为什么?
 楼主| scorpius 发表于 2011-12-12 16:45:32 | 显示全部楼层
补充下,同样的运行leds程序,都是光盘提供的。运行正常
亚瑟王 发表于 2011-12-19 09:30:14 | 显示全部楼层
亲,没搞懂你的意思了。
friendpy 发表于 2012-3-14 16:45:07 | 显示全部楼层
本帖最后由 friendpy 于 2012-3-14 16:49 编辑

     我认真看了leds.c和led-player.c。我知道leds.c编译出来是可以运行的。而led-player.c程序有点奇怪,似乎不是单独控制led灯的。
   我在百度上找了,看到一个led-player服务器的说法。
   程序使用到了管道,但是在程序中只从管道内读数据,而没有往里写数据。这个程序似乎是在后台运行。当你要控制LED灯的闪烁模式的时候,把数据往管道里写就行了。只有三种模式:全灭,一个移动的亮点,还有一个加1操作的闪烁,其中变化的时间间隔是用period.默认为period为0.5秒,模式1。
    不知道这么理解可对
亚瑟王 发表于 2012-3-26 11:58:13 | 显示全部楼层
friendpy 发表于 2012-3-14 16:45
我认真看了leds.c和led-player.c。我知道leds.c编译出来是可以运行的。而led-player.c程序有点奇怪,似 ...

亲,是这样理解的。
DonyChen 发表于 2012-4-1 00:03:35 | 显示全部楼层
不知道LZ这个问题最后有没有搞定呢?GPIO-Control和教程里面EmbedSky_leds两个驱动有些部分是不同的,不知道是不是这个原因?
明天再试了:dizzy:
DonyChen 发表于 2012-4-2 00:01:40 | 显示全部楼层
led-player.c里面static void push_leds(void)实际对IO口控制的部分超处理驱动处理的范围
        for (i = 0; i < 8; i++) {/*ioctl的函数原型里面只能控制4个LED,驱动虽然对>4作了异常处理
                但是==4的输入还是会出错,这里改成<4就OK了*/
                ioctl(led_fd, led_bitmap & 1, i); /*实际控制LED亮灭*/
                led_bitmap >>= 1;
        }
但是为什么使用EmbedSky_gpio.c编译的驱动没有这个问题呢?ioctl函数是一样的,IO口定义的table也是一样的,不同的在于EmbedSky_gpio.c定义了一个miscdevice非常规字符设备,是这个原因吗?
高手出来指点一下。谢谢
DonyChen 发表于 2012-4-2 10:32:39 | 显示全部楼层
friendpy 发表于 2012-3-14 16:45
我认真看了leds.c和led-player.c。我知道leds.c编译出来是可以运行的。而led-player.c程序有点奇怪,似 ...

读管道的操作应该就是起个延时的作用,因为没有什么地方对这个管道写入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-5 08:35 , Processed in 1.034114 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表