linux gpio.h找不到,linux找不到mach/regs-gpio.h文件,郁闷啊

tica, SimSun, sans-serif">我把TQ2440开发板的linux源代码放到了虚拟机上面,用的是redhat 4 企业版,并且把EABI编译器安装上了,编译内核的时候没有问题,能生成zImage,可我编写驱动程序的时候,linux/下的文件都能找到,比如 #include ,但是mach下的却找不到,#include 就会出现 No directory。。。。,但是涉及硬件必须要用啊,郁闷,我想知道,编译器是怎么寻找头文件的,这种情况到底是怎么回事,一概不知啊,恳请哪路大神帮小弟一把!

Makefile的内容

ifneq ($(KERNELRELEASE),)

obj-m :=EmbedSky_gpio.o

ARCH =ARM

CROSS_COMPILE =arm-linux-

else

KERNELDIR =/opt/EmbedSky/linux-2.6.30.4/

#KERNELDIR=/lib/modules/$(shell uname -r)/build

#KERNELDIR=/usr/src/kernels/2.6.21-1.3194.fc7-i686

PWD := $(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c

endif

结果:

[root@vm-dev led]# make

make -C /opt/EmbedSky/linux-2.6.30.4/ M=/lifuxing/led modules

make[1]: Entering directory `/opt/EmbedSky/linux-2.6.30.4'

CC [M]  /lifuxing/led/EmbedSky_gpio.o

/led/EmbedSky_gpio.c:11:28: error: mach/regs-gpio.h: No such file or directory

/led/EmbedSky_gpio.c:42: error: 'S3C2410_GPB5' undeclared here (not in a function)

/led/EmbedSky_gpio.c:43: error: 'S3C2410_GPB6' undeclared here (not in a function)

/led/EmbedSky_gpio.c:44: error: 'S3C2410_GPB7' undeclared here (not in a function)

/led/EmbedSky_gpio.c:45: error: 'S3C2410_GPB8' undeclared here (not in a function)

/led/EmbedSky_gpio.c:51: error: 'S3C2410_GPB5_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:51: error: initializer element is not constant

/led/EmbedSky_gpio.c:51: error: (near initialization for 'gpio_cfg_table[0]')

/led/EmbedSky_gpio.c:52: error: 'S3C2410_GPB6_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:52: error: initializer element is not constant

/led/EmbedSky_gpio.c:52: error: (near initialization for 'gpio_cfg_table[1]')

/led/EmbedSky_gpio.c:53: error: 'S3C2410_GPB7_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:53: error: initializer element is not constant

/led/EmbedSky_gpio.c:53: error: (near initialization for 'gpio_cfg_table[2]')

/led/EmbedSky_gpio.c:54: error: 'S3C2410_GPB8_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:54: error: initializer element is not constant

/led/EmbedSky_gpio.c:54: error: (near initialization for 'gpio_cfg_table[3]')

/led/EmbedSky_gpio.c: In function 'tq2440_gpio_ioctl':

/led/EmbedSky_gpio.c:72: error: implicit declaration of function 's3c2410_gpio_setpin'

/led/EmbedSky_gpio.c: In function 'dev_init':

/led/EmbedSky_gpio.c:104: error: implicit declaration of function 's3c2410_gpio_cfgpin'

make[2]: *** [/led/EmbedSky_gpio.o] 错误 1

make[1]: *** [_module_/led] 错误 2

make[1]: Leaving directory `/opt/EmbedSky/linux-2.6.30.4'

make: *** [default] 错误 2

[root@vm-dev led]#

tica, SimSun, sans-serif">我把TQ2440开发板的linux源代码放到了虚拟机上面,用的是redhat 4 企业版,并且把EABI编译器安装上了,编译内核的时候没有问题,能生成zImage,可我编写驱动程序的时候,linux/下的文件都能找到,比如 #include ,但是mach下的却找不到,#include 就会出现 No directory。。。。,但是涉及硬件必须要用啊,郁闷,我想知道,编译器是怎么寻找头文件的,这种情况到底是怎么回事,一概不知啊,恳请哪路大神帮小弟一把!

Makefile的内容

ifneq ($(KERNELRELEASE),)

obj-m :=EmbedSky_gpio.o

ARCH =ARM

CROSS_COMPILE =arm-linux-

else

KERNELDIR =/opt/EmbedSky/linux-2.6.30.4/

#KERNELDIR=/lib/modules/$(shell uname -r)/build

#KERNELDIR=/usr/src/kernels/2.6.21-1.3194.fc7-i686

PWD := $(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c

endif

结果:

[root@vm-dev led]# make

make -C /opt/EmbedSky/linux-2.6.30.4/ M=/lifuxing/led modules

make[1]: Entering directory `/opt/EmbedSky/linux-2.6.30.4'

CC [M]  /lifuxing/led/EmbedSky_gpio.o

/led/EmbedSky_gpio.c:11:28: error: mach/regs-gpio.h: No such file or directory

/led/EmbedSky_gpio.c:42: error: 'S3C2410_GPB5' undeclared here (not in a function)

/led/EmbedSky_gpio.c:43: error: 'S3C2410_GPB6' undeclared here (not in a function)

/led/EmbedSky_gpio.c:44: error: 'S3C2410_GPB7' undeclared here (not in a function)

/led/EmbedSky_gpio.c:45: error: 'S3C2410_GPB8' undeclared here (not in a function)

/led/EmbedSky_gpio.c:51: error: 'S3C2410_GPB5_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:51: error: initializer element is not constant

/led/EmbedSky_gpio.c:51: error: (near initialization for 'gpio_cfg_table[0]')

/led/EmbedSky_gpio.c:52: error: 'S3C2410_GPB6_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:52: error: initializer element is not constant

/led/EmbedSky_gpio.c:52: error: (near initialization for 'gpio_cfg_table[1]')

/led/EmbedSky_gpio.c:53: error: 'S3C2410_GPB7_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:53: error: initializer element is not constant

/led/EmbedSky_gpio.c:53: error: (near initialization for 'gpio_cfg_table[2]')

/led/EmbedSky_gpio.c:54: error: 'S3C2410_GPB8_OUTP' undeclared here (not in a function)

/led/EmbedSky_gpio.c:54: error: initializer element is not constant

/led/EmbedSky_gpio.c:54: error: (near initialization for 'gpio_cfg_table[3]')

/led/EmbedSky_gpio.c: In function 'tq2440_gpio_ioctl':

/led/EmbedSky_gpio.c:72: error: implicit declaration of function 's3c2410_gpio_setpin'

/led/EmbedSky_gpio.c: In function 'dev_init':

/led/EmbedSky_gpio.c:104: error: implicit declaration of function 's3c2410_gpio_cfgpin'

make[2]: *** [/led/EmbedSky_gpio.o] 错误 1

make[1]: *** [_module_/led] 错误 2

make[1]: Leaving directory `/opt/EmbedSky/linux-2.6.30.4'

make: *** [default] 错误 2

[root@vm-dev led]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值