led驱动发生错误

[复制链接]
2913|5
 楼主| chen_yuan 发表于 2007-9-2 13:52 | 显示全部楼层 |阅读模式
我在编译led驱动程序时,出现了下面错误:<br />arm-linux-gcc&nbsp;-O2&nbsp;-Wall&nbsp;-D__KERNEL__&nbsp;-DMODULE&nbsp;-I/zylinux/kernel/include&nbsp;-I.&nbsp;-march=armv4t&nbsp;-c&nbsp;-o&nbsp;-mapcs&nbsp;-c&nbsp;magic-leds.c&nbsp;-o&nbsp;magic-leds.o<br />In&nbsp;file&nbsp;included&nbsp;from&nbsp;/zylinux/kernel/include/asm/hardware.h:18,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;magic-leds.c:48:<br />/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/arch/hardware.h:16:&nbsp;asm/mach-types.h:&nbsp;?????????<br />make:&nbsp;***&nbsp;[magic-leds.o]&nbsp;Error&nbsp;1<br />请知道如何改正的朋友帮我一下,谢谢!<br />
 楼主| chen_yuan 发表于 2007-9-3 14:17 | 显示全部楼层

为何没人帮忙啊

同主题
wangkj 发表于 2007-9-3 15:06 | 显示全部楼层

信息不全

  
 楼主| chen_yuan 发表于 2007-9-3 15:29 | 显示全部楼层

led驱动发生错误

Makefile:<br />EXEC&nbsp;=&nbsp;leds.ko&nbsp;<br />OBJS&nbsp;=&nbsp;magic-leds.o&nbsp;<br />SRC&nbsp;&nbsp;=&nbsp;magic-leds.c&nbsp;<br /><br />INCLUDE&nbsp;=&nbsp;/zylinux/kernel/include<br />USEINC&nbsp;=.<br />CC&nbsp;=&nbsp;arm-linux-gcc<br />LD&nbsp;=&nbsp;arm-linux-ld<br />MODCFLAGS&nbsp;=&nbsp;-O2&nbsp;-Wall&nbsp;-D__KERNEL__&nbsp;-DMODULE&nbsp;-I$(INCLUDE)&nbsp;-I$(USEINC)&nbsp;-march=armv4t&nbsp;-c&nbsp;-o<br />LDFLAGS&nbsp;=&nbsp;-r<br /><br />all:&nbsp;$(EXEC)<br /><br />$(EXEC):&nbsp;$(OBJS)<br />&nbsp;&nbsp;&nbsp;&nbsp;$(LD)&nbsp;$(LDFLAGS)&nbsp;-o&nbsp;$@&nbsp;$(OBJS)<br /><br />%.o:%.c<br />&nbsp;&nbsp;&nbsp;&nbsp;$(CC)&nbsp;$(MODCFLAGS)&nbsp;-mapcs&nbsp;-c&nbsp;$&lt&nbsp;-o&nbsp;$@<br /><br />clean:<br />&nbsp;&nbsp;&nbsp;&nbsp;-rm&nbsp;-f&nbsp;$(EXEC)&nbsp;*.o&nbsp;*~&nbsp;core<br /><br />cross_2.95.3.tar.bz2已经安装好:/usr/local/arm/下,环境变量已经设置好,编译其它的程序(不是驱动程序)都是可以用的。linux为redhat9.0,内核为:2.4.20-8<br /><br />magic-leds.c:<br /><br />#ifndef&nbsp;__KERNEL__<br />&nbsp;&nbsp;&nbsp;&nbsp;#define&nbsp;__KERNEL__<br />#endif<br /><br />#ifndef&nbsp;MODULE<br />&nbsp;&nbsp;&nbsp;&nbsp;#define&nbsp;MODULE<br />#endif<br /><br />#include&nbsp;&ltlinux/config.h&gt<br />#include&nbsp;&ltlinux/module.h&gt<br />#include&nbsp;&ltlinux/kernel.h&gt<br />#include&nbsp;&ltlinux/init.h&gt<br />#include&nbsp;&ltlinux/sched.h&gt<br /><br />#include&nbsp;&ltasm/hardware.h&gt<br /><br />#define&nbsp;DEVICE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&quot;magic-leds&quot;<br />//#define&nbsp;LED_MAJOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;231&nbsp;&nbsp;&nbsp;&nbsp;//can&nbsp;be&nbsp;231~239&nbsp;or&nbsp;240~254<br /><br />static&nbsp;unsigned&nbsp;long&nbsp;leds_table&nbsp;[]&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIO_E11,<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIO_E12,<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIO_H4,<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIO_H6,<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIO_H10,<br />};<br /><br /><br />static&nbsp;int&nbsp;magic_leds_ioctl(struct&nbsp;inode&nbsp;*inode,&nbsp;struct&nbsp;file&nbsp;*filp,&nbsp;unsigned&nbsp;int&nbsp;cmd,&nbsp;unsigned&nbsp;long&nbsp;arg)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(arg&nbsp;&gt&nbsp;4)&nbsp;return&nbsp;-EINVAL;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;switch(cmd)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;1:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_gpio_bit(leds_table[arg],&nbsp;cmd);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-EINVAL;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />static&nbsp;int&nbsp;magic_leds_open(struct&nbsp;inode&nbsp;*inode,&nbsp;struct&nbsp;file&nbsp;*filp)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;5;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_gpio_ctrl&nbsp;(leds_table&nbsp;|&nbsp;GPIO_PULLUP_EN&nbsp;|&nbsp;GPIO_MODE_OUT);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_gpio_bit(leds_table,&nbsp;1);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOD_INC_USE_COUNT;<br />&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_INFO&nbsp;DEVICE_NAME&nbsp;&quot;:&nbsp;opened.
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br /><br />static&nbsp;int&nbsp;magic_leds_release(struct&nbsp;inode&nbsp;*inode,&nbsp;struct&nbsp;file&nbsp;*filp)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;MOD_DEC_USE_COUNT;<br />&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_INFO&nbsp;DEVICE_NAME&nbsp;&quot;:&nbsp;released.
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />static&nbsp;struct&nbsp;file_operations&nbsp;magic_leds_fops&nbsp;=&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;owner:&nbsp;&nbsp;&nbsp;&nbsp;THIS_MODULE,<br />&nbsp;&nbsp;&nbsp;&nbsp;ioctl:&nbsp;&nbsp;magic_leds_ioctl,<br />&nbsp;&nbsp;&nbsp;&nbsp;open:&nbsp;&nbsp;&nbsp;&nbsp;magic_leds_open,<br />&nbsp;&nbsp;&nbsp;&nbsp;release:&nbsp;&nbsp;&nbsp;&nbsp;magic_leds_release,<br />};<br /><br /><br />static&nbsp;devfs_handle_t&nbsp;devfs_handle;<br />static&nbsp;int&nbsp;__init&nbsp;magic_leds_init(void)<br />{<br />//&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;result;<br /><br />//&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;&nbsp;register_chrdev(0,&nbsp;DEVICE_NAME,&nbsp;&magic_leds_fops);<br />//&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(result&nbsp;&lt&nbsp;0)&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;{<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_ERR&nbsp;DEVICE_NAME&nbsp;&quot;:&nbsp;Failed&nbsp;to&nbsp;register&nbsp;major.
&quot;);<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />//&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;devfs_handle&nbsp;=&nbsp;devfs_register(NULL,&nbsp;DEVICE_NAME,&nbsp;DEVFS_FL_AUTO_DEVNUM,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;0,&nbsp;S_IFCHR&nbsp;|&nbsp;S_IRUSR&nbsp;|&nbsp;S_IWUSR,&nbsp;&magic_leds_fops,&nbsp;NULL);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_INFO&nbsp;DEVICE_NAME&nbsp;&quot;:&nbsp;Initialize&nbsp;OK.
&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br />static&nbsp;void&nbsp;__exit&nbsp;magic_leds_exit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;devfs_unregister(devfs_handle);<br />//&nbsp;&nbsp;&nbsp;&nbsp;unregister_chrdev(0,&nbsp;DEVICE_NAME);<br />}<br /><br />module_init(magic_leds_init);<br />module_exit(magic_leds_exit);<br />
 楼主| chen_yuan 发表于 2007-9-3 18:36 | 显示全部楼层

帮帮我呀

如题!
阿南 发表于 2007-9-3 19:44 | 显示全部楼层

看看magic-leds.c文件第48行是什么东东?

看看/zylinux/kernel/include/asm/hardware.h文件的第18行是什么东东<br />还有.......arm-linux/sys-include/asm/arch/hardware.h的第16行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部