fl2440 2.6.35移植触摸屏驱动错误

bootload出错提示如下:

------------[ cut here ]------------

WARNING: at lib/kref.c:34 kref_get+0x1c/0x40()

Modules linked in:

[<c0031364>] (unwind_backtrace+0x0/0xf0) from [<c004aee4>] (warn_slowpath_common+0x48/0x60)

[<c004aee4>] (warn_slowpath_common+0x48/0x60) from [<c004af14>] (warn_slowpath_null+0x18/0x1c)

[<c004af14>] (warn_slowpath_null+0x18/0x1c) from [<c0172e14>] (kref_get+0x1c/0x40)

[<c0172e14>] (kref_get+0x1c/0x40) from [<c0171f44>] (kobject_get+0x10/0x18)

[<c0171f44>] (kobject_get+0x10/0x18) from [<c01b8cbc>] (get_device+0x14/0x1c)

[<c01b8cbc>] (get_device+0x14/0x1c) from [<c01b946c>] (device_add+0x74/0x580)

[<c01b946c>] (device_add+0x74/0x580) from [<c01bcc54>] (platform_device_add+0x104/0x15c)

[<c01bcc54>] (platform_device_add+0x104/0x15c) from [<c01bcf74>] (platform_add_devices+0x1c/0x60)

[<c01bcf74>] (platform_add_devices+0x1c/0x60) from [<c000d84c>] (smdk2440_machine_init+0x2c/0x38)

[<c000d84c>] (smdk2440_machine_init+0x2c/0x38) from [<c000b4d0>] (customize_machine+0x18/0x24)

[<c000b4d0>] (customize_machine+0x18/0x24) from [<c002b35c>] (do_one_initcall+0x5c/0x1bc)

[<c002b35c>] (do_one_initcall+0x5c/0x1bc) from [<c000857c>] (kernel_init+0xa0/0x14c)

[<c000857c>] (kernel_init+0xa0/0x14c) from [<c002ce2c>] (kernel_thread_exit+0x0/0x8)

---[ end trace 1b75b31a2719ed1c ]---

Unable to handle kernel NULL pointer dereference at virtual address 00000021

pgd = c0004000

[00000021] *pgd=00000000

Internal error: Oops: 5 [#1]

last sysfs file:

Modules linked in:

CPU: 0    Tainted: G        W    (2.6.35.4 #7)

PC is at sysfs_create_dir+0x24/0xe0

LR is at kobject_add_internal+0xb8/0x1bc

pc : [<c00e2b10>]    lr : [<c0172060>]    psr: a0000013

sp : c3c19ee8  ip : c3c19f34  fp : 00000000

r10: 00000000  r9 : 00000000  r8 : 00000000

r7 : 00000000  r6 : 00000000  r5 : c0426908  r4 : c0426908

r3 : c0426e18  r2 : c0427254  r1 : c042690c  r0 : c0426908

Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel

Control: c000717f  Table: 30004000  DAC: 00000017

Process swapper (pid: 1, stack limit = 0xc3c18270)

Stack: (0xc3c19ee8 to 0xc3c1a000)

9ee0:                   c0426908 c042690c c0427254 c3c44ee0 c0426900 c0426908

9f00: c0426e18 c0172060 c0426900 c0426908 c0426e10 00000000 00000000 c01722dc

9f20: c0426908 c3c19f34 00000000 c01b94c4 00000000 c0426e18 00000021 00000000

9f40: 00000000 c0172208 c04268f8 00000008 00000000 c04268f8 00000002 00000038

9f60: 00000009 00000000 00000000 00000000 00000000 c01bcc54 c0025a84 00000008

9f80: 00000000 00000009 00000000 c01bcf74 c0025a44 c00235b4 00000000 00000013

9fa0: 00000000 c000d84c c000b4b8 c000b4d0 c000b4b8 c002b35c c000b4b8 c3c34718

9fc0: c044e3a0 c044e3a0 c0023120 c00235b4 c002ce2c 00000013 00000000 00000000

9fe0: 00000000 c000857c 00000000 c00084dc c002ce2c c002ce2c fc2effef b6a2fbec

[<c00e2b10>] (sysfs_create_dir+0x24/0xe0) from [<c0172060>] (kobject_add_internal+0xb8/0x1bc)

[<c0172060>] (kobject_add_internal+0xb8/0x1bc) from [<c01722dc>] (kobject_add+0x4c/0x5c)

[<c01722dc>] (kobject_add+0x4c/0x5c) from [<c01b94c4>] (device_add+0xcc/0x580)

[<c01b94c4>] (device_add+0xcc/0x580) from [<c01bcc54>] (platform_device_add+0x104/0x15c)

[<c01bcc54>] (platform_device_add+0x104/0x15c) from [<c01bcf74>] (platform_add_devices+0x1c/0x60)

[<c01bcf74>] (platform_add_devices+0x1c/0x60) from [<c000d84c>] (smdk2440_machine_init+0x2c/0x38)

[<c000d84c>] (smdk2440_machine_init+0x2c/0x38) from [<c000b4d0>] (customize_machine+0x18/0x24)

[<c000b4d0>] (customize_machine+0x18/0x24) from [<c002b35c>] (do_one_initcall+0x5c/0x1bc)

[<c002b35c>] (do_one_initcall+0x5c/0x1bc) from [<c000857c>] (kernel_init+0xa0/0x14c)

[<c000857c>] (kernel_init+0xa0/0x14c) from [<c002ce2c>] (kernel_thread_exit+0x0/0x8)

Code: e594300c e3530000 059f60b0 15936018 (e5d65021)

---[ end trace 1b75b31a2719ed1d ]---

Kernel panic - not syncing: Attempted to kill init!

[<c0031364>] (unwind_backtrace+0x0/0xf0) from [<c0317994>] (panic+0x54/0xd8)

[<c0317994>] (panic+0x54/0xd8) from [<c004de5c>] (do_exit+0x64/0x584)

[<c004de5c>] (do_exit+0x64/0x584) from [<c002f788>] (die+0x198/0x1c4)

[<c002f788>] (die+0x198/0x1c4) from [<c0032060>] (__do_kernel_fault+0x64/0x84)

[<c0032060>] (__do_kernel_fault+0x64/0x84) from [<c0032230>] (do_page_fault+0x1b0/0x1c4)

[<c0032230>] (do_page_fault+0x1b0/0x1c4) from [<c002b29c>] (do_DataAbort+0x34/0x94)

[<c002b29c>] (do_DataAbort+0x34/0x94) from [<c002b9e0>] (__dabt_svc+0x40/0x60)

Exception stack(0xc3c19ea0 to 0xc3c19ee8)

9ea0: c0426908 c042690c c0427254 c0426e18 c0426908 c0426908 00000000 00000000

9ec0: 00000000 00000000 00000000 00000000 c3c19f34 c3c19ee8 c0172060 c00e2b10

9ee0: a0000013 ffffffff

[<c002b9e0>] (__dabt_svc+0x40/0x60) from [<c00e2b10>] (sysfs_create_dir+0x24/0xe0)

[<c00e2b10>] (sysfs_create_dir+0x24/0xe0) from [<c0172060>] (kobject_add_internal+0xb8/0x1bc)

[<c0172060>] (kobject_add_internal+0xb8/0x1bc) from [<c01722dc>] (kobject_add+0x4c/0x5c)

[<c01722dc>] (kobject_add+0x4c/0x5c) from [<c01b94c4>] (device_add+0xcc/0x580)

[<c01b94c4>] (device_add+0xcc/0x580) from [<c01bcc54>] (platform_device_add+0x104/0x15c)

[<c01bcc54>] (platform_device_add+0x104/0x15c) from [<c01bcf74>] (platform_add_devices+0x1c/0x60)

[<c01bcf74>] (platform_add_devices+0x1c/0x60) from [<c000d84c>] (smdk2440_machine_init+0x2c/0x38)

[<c000d84c>] (smdk2440_machine_init+0x2c/0x38) from [<c000b4d0>] (customize_machine+0x18/0x24)

[<c000b4d0>] (customize_machine+0x18/0x24) from [<c002b35c>] (do_one_initcall+0x5c/0x1bc)

[<c002b35c>] (do_one_initcall+0x5c/0x1bc) from [<c000857c>] (kernel_init+0xa0/0x14c)

[<c000857c>] (kernel_init+0xa0/0x14c) from [<c002ce2c>] (kernel_thread_exit+0x0/0x8)

错误原因是我移植时没有加个ADC驱动。在平台设备中添加  &s3c_device_adc

时间: 2024-10-28 08:31:25

fl2440 2.6.35移植触摸屏驱动错误的相关文章

移植触摸屏驱动到linux3.4.2

1. 修改drivers/input/touchscreen/下的Makefile #obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c_ts.o 2. 修改.config,找到CONFIG_TOUCHSCREEN_S3C2410,修改为 # CONFIG_TOUCHSCREEN_ILI210X is not set CONFIG_TOUCHSCREEN_S3C241

NUC970平台触摸屏驱动移植

原理概述 1.首先要区分lcd和触摸屏,lcd是一个屏幕,触摸屏是贴在lcd上的两层膜. 2.四线电阻触摸屏的原理:触摸屏就是上下两层膜,比如上层代表x轴(XM:负端,XP:正端),下层代表y轴(YM:负端,YP:正端).当读取x轴坐标时,XP接3.3v,XM接地,从YM读取按下点的电压值作为模拟输入信号,再经过AD转换后就得到了x轴坐标.同理,当读取y轴坐标时,YP接3.3v,YM接地,从XM读取按下点的电压值作为模拟输入,再经过AD转换后就得到了y轴坐标. 触摸屏驱动程序采用中断方式对触摸笔

I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之触摸屏驱动移植

之所以说是驱动移植是因为之前已经在TQ210.AM335x两个平台上移植过了,因此,仅需要少量修改就可以将驱动移植到imx6q.下面开始触摸驱动移植. DTS编写 参考其它DTS的i2c设备写法,我们可以添加如下内容: &i2c1 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_2>; status = "okay&q

转载: linux2.6.37.4内核在XC2440开发板上移植(六)之触摸屏驱动移植

来自:http://blog.chinaunix.net/uid-22030783-id-3023527.html 内核自带s3c2440的触摸屏控制器驱动,属于input子系统的驱动,触摸屏驱动需要ADC驱动的支持,触摸屏驱动文件为:drivers/input/touchscreen/s3c2410_ts.c 在mach-xc2440.c文件中加入对触摸屏驱动的支持, 创建s3c2410_ts_mach_info平台数据 加入必要的头文件: #include <plat/ts.h> xc24

Linux-2.6.39在Tiny6410上的移植 - 外设驱动移植

Linux内核版本号:linux 2.6.39 交叉编译工具:arm-linux-gcc 4.5.1 Linux内核下载:www.kernel.org 开发板:友善之臂Tiny6410 LCD:友善之臂S70 一.移植LED驱动 打开arch/arm/mach-s3c64xx/mach-mini6410.c添加下列代码: 1 static struct gpio_led tiny6410_gpio_led[] = { 2 [0] = { 3 .name = "led1", //设备名

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

AM335x(TQ335x)学习笔记——触摸屏驱动编写

前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱动源码,单纯的配置DTS是无法完成TQ335x的触摸驱动移植工作的,因此,本文参考内核中原有的pixcir_i2c_ts驱动编写TQ335x的触摸屏(TN92)驱动. 在之前移植TQ210时,我已经编写过TQ210的触摸屏驱动,我的TQ335x还是使用的TQ210的屏,因此,难度不是很大.这里需要说

触摸屏驱动三部曲之功能实现及优化

小伙伴们准备好了吗?又到了看手册写代码的时候了.既懂硬件又懂软件的驱动工程师们.Come On..... 一.总体框图 二.驱动代码 #include <linux/errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux/input.h> #include <linux/init.h> #i

【视频】嵌入式Linux/Android驱动开发揭秘(1)触摸屏驱动开发

嵌入式Linux/Android驱动开发揭秘(1)触摸屏驱动开发 专题简介:自1971年,美国人SamHurst发明了世界上第一个触摸传感器以来,触摸屏技术不断革新,给了程序设计师和UI工程师无限的想象空间,它极大改善了终端用户对各种设备的操作方便程度,现在我们的日常生活如手机.平板等,已经很大程度上依赖于和习惯于使用和操作触摸屏.做为工程师,我们很有必要掌握触摸屏的工作原理和软件驱动方法,如果您对一窥如何在嵌入式中操控和使用触摸屏这一司空见惯却又神奇的技术感兴趣,敬请关注! 1.LINUX驱动