天嵌 ARM开发社区

 找回密码
 注册
查看: 3500|回复: 8

求教,谢谢了

[复制链接]
lirics 发表于 2010-4-17 22:02:20 | 显示全部楼层 |阅读模式
linux内核2.6.3版本中 class_device_create函数在那个头文件中声明?我在编译过程中显示这个函数隐式声明错误。

以后如果再次遇到这样,无法找到函数,或是因为头文件的变化,导致函数无法找到的错误,应该怎么解决呢?

谢谢了
亚瑟王 发表于 2010-4-19 13:04:27 | 显示全部楼层
2.6.3的内核没有用过。如果是2.6.30.4的内核,你可以参考天嵌科技提供Linux-2.6.30.4的源码的drivers/char/目录下的EmbedSky_gpio.c的驱动文件也可以是其他EmbedSky开头的驱动文件。
 楼主| lirics 发表于 2010-4-19 23:03:42 | 显示全部楼层
2# 亚瑟王

我用的就是2.6.30.4的内核,我将天嵌科技提供Linux-2.6.30.4的源码的drivers/char/目录下的EmbedSky_gpio.c的驱动文件,拷贝到我下载的2.6.30.4 的源代码中用4.3.3的编译器进行编译,出现一样的错误,错误如下:
  1. CC [M]  drivers/char/EmbedSky_hello.o
  2. drivers/char/EmbedSky_hello.c: In function '__exittest':
  3. drivers/char/EmbedSky_hello.c:28: warning: return from incompatible pointer type
  4. drivers/char/EmbedSky_hello.c: In function 'EmbedSky_hello_exit':
  5. drivers/char/EmbedSky_hello.c:25: warning: control reaches end of non-void function
  6.   CC [M]  drivers/char/EmbedSky_leds.o
  7. drivers/char/EmbedSky_leds.c: In function 'EmbedSky_leds_init':
  8. drivers/char/EmbedSky_leds.c:111: error: implicit declaration of function 'class_device_create'
  9. drivers/char/EmbedSky_leds.c: In function 'EmbedSky_leds_exit':
  10. drivers/char/EmbedSky_leds.c:119: error: implicit declaration of function 'class_device_destory'
  11. drivers/char/EmbedSky_leds.c:120: error: implicit declaration of function 'class_destory'
  12. drivers/char/EmbedSky_leds.c: In function '__exittest':
  13. drivers/char/EmbedSky_leds.c:124: warning: return from incompatible pointer type
  14. make[2]: *** [drivers/char/EmbedSky_leds.o] Error 1
  15. make[1]: *** [drivers/char] Error 2
复制代码
我将EmbedSky_gpio.c 文件名改为EmbedSky_leds.c
亚瑟王 发表于 2010-4-20 10:54:52 | 显示全部楼层
告诉我你的具体操作。
 楼主| lirics 发表于 2010-4-20 14:00:15 | 显示全部楼层
4# 亚瑟王

我将天嵌提供2.6.30.4文件中的EmbedSky_gpio.c拷贝到我从ftp.kernel.org下载的2.6.30.4内核的drivers/char 下,并修改Kconfig文件内容添加如下

  1. config EmbedSky_LEDS
  2.         tristate "TQ2440 LEDS Driver"
  3.         depends on ARCH_S3C2440
  4.         help
  5.           EmbedSky Leds driver.
复制代码
makefile内容中添加如下:

  1. obj-$(CONFIG_EmbedSky_LEDS)        += EmbedSky_leds.o
复制代码
然后编译报错如下

  1. [root@lirics linux-2.6.30.4]# make SUBDIR=drivers/char/ modules
  2.   CHK     include/linux/version.h
  3. make[1]: `include/asm-arm/mach-types.h' is up to date.
  4.   CHK     include/linux/utsrelease.h
  5.   SYMLINK include/asm -> include/asm-arm
  6.   CALL    scripts/checksyscalls.sh
  7. <stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
  8. <stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
  9. <stdin>:1321:2: warning: #warning syscall pselect6 not implemented
  10. <stdin>:1325:2: warning: #warning syscall ppoll not implemented
  11. <stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
  12.   CC [M]  drivers/char/EmbedSky_leds.o
  13. drivers/char/EmbedSky_leds.c: In function 'EmbedSky_leds_init':
  14. drivers/char/EmbedSky_leds.c:111: error: implicit declaration of function 'class_device_create'
  15. drivers/char/EmbedSky_leds.c: In function 'EmbedSky_leds_exit':
  16. drivers/char/EmbedSky_leds.c:119: error: implicit declaration of function 'class_device_destory'
  17. drivers/char/EmbedSky_leds.c:120: error: implicit declaration of function 'class_destory'
  18. drivers/char/EmbedSky_leds.c: In function '__exittest':
  19. drivers/char/EmbedSky_leds.c:124: warning: return from incompatible pointer type
  20. make[2]: *** [drivers/char/EmbedSky_leds.o] Error 1
  21. make[1]: *** [drivers/char] Error 2
  22. make: *** [drivers] Error 2

复制代码
多谢 管理员的耐心帮助。
 楼主| lirics 发表于 2010-4-20 14:12:52 | 显示全部楼层
我又试了下,天嵌提供的代码通过编译了,我自己按照教程写的还是没有通过,对照两份代码研究下,有什么问题再向管理员求教,谢谢了
亚瑟王 发表于 2010-4-23 14:47:44 | 显示全部楼层
你应该是拷贝的2.6.25.8中的GPIO的驱动到2.6.30.4的内核中,而两者的驱动源码有差别的,特别是注册驱动时的API上。
sctwyg 发表于 2011-11-4 20:47:18 | 显示全部楼层
error: implicit declaration of function ‘class_device_create’
应该是版本不同引起的,class_device_create改为device_creat
亚瑟王 发表于 2011-11-14 18:49:02 | 显示全部楼层
不推荐用device_creat注册设备,建议使用misc_register注册,注册方法相对比较方面。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-10-1 17:17 , Processed in 1.032266 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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