codeblocks下载 error:unknown type name 'wchar_t'

目标板中加载驱动时出现version magic '2.6.24.3 preempt mod_unload ARMv5 ' sh
目标板中加载驱动时出现version magic '2.6.24.3 preempt mod_unload ARMv5 ' sh
[摘要:题目: 本来的内核版本2.6.24.3,交织编译对象为ELDK4.1,经过rcS启动剧本主动减载驱动,继电器的驱动能正在方针板上一般减载,而且运转一般。 内核版本进级到2.6.30,交织编译对象的版]
原来的内核版本2.6.24.3,交叉编译工具为ELDK4.1,通过rcS启动脚本自动加载驱动,继电器的驱动能在目标板上正常加载,并且运行正常。
内核版本升级到2.6.30,交叉编译工具的版本也升级到ELDK4.2,但是通过rcS启动脚本加载继电器驱动的时候,出现错误提示:
relay1218: version magic '2.6.24.3 preempt mod_unload ARMv5 ' should be '2.6.30 mod_unload ARMv5 ' insmod: can't insert '/usr/relay1218.ko': invalid module format BusyBox v1.15.3 ( 11:17:39 CST) multi-call binary
Usage: mknod [OPTIONS] NAME TYPE MAJOR MINOR
Create a special file (block, character, or pipe)
Create the special file using the specified mode (default a=rw) TYPEs include:
Make a block device
c or u: Make a character device
Make a named pipe (MAJOR and MINOR are ignored)
rcS启动脚本中,加载驱动部分的命令为:
# load drivers
/sbin/insmod /usr/relay1218.ko
rm -f /dev/relay1218dev
mknod /dev/relay1218dev c `cat /proc/devices | grep &relay1218& | awk '{print $1}'` 0
chmod 664 /dev/relay1218dev
解决办法:
1. 检查驱动程序中的Makefile文件,其中的
KERNEL_SRC = /home/startech/Work/08src/linux-2.6.24.3/而目标板上用的内核是2.6.30,这就是安装驱动时出现错误提示的原因。
原因找到了,下一步就是用目标板上的内核为基础来编译驱动;
2. 将驱动中的Makefile中的变量KERNEL_SRC改为2.6.30内核
出现N多错误:
dingq@u:~/startech_pdu/fw/dir-struct/pdu/drivers/att7053$ make make -C /home/dingq/wrk/pdu/kernel/linux-2.6.30/ M=/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053 modules make[1]: Entering directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30'
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.o In file included from include/linux/prefetch.h:14:0,
from include/linux/list.h:6,
from include/linux/module.h:9,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:115:30: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function) /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:115:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:160:0: warning: &cache_line_size& redefined [enabled by default] include/linux/cache.h:64:0: note: this is the location of the previous definition /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:240:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:271:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h: In function ‘native_get_debugreg’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:497:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’
/home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h: In function ‘native_set_debugreg’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:524:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’
In file included from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic.h:4:0,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/thread_info.h:24,
from include/linux/thread_info.h:55,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/stat.h:60,
from include/linux/module.h:10,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h: At top level: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:213:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:227:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:243:49: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:259:33: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:272:33: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:287:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:305:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:324:49: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:341:48: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:350:48: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:399:39: error: unknown type name ‘atomic64_t’ In file included from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:458:0,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic.h:4,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/thread_info.h:24,
from include/linux/thread_info.h:55,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/stat.h:60,
from include/linux/module.h:10,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/asm-generic/atomic.h:23:1: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h: In function ‘atomic_long_read’: include/asm-generic/atomic.h:29:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:29:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:29:19: note: each undeclared identifier is reported only once for each function it appears in include/asm-generic/atomic.h:29:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:31:15: error: request for member ‘counter’ in something not a structure or union include/asm-generic/atomic.h: In function ‘atomic_long_set’: include/asm-generic/atomic.h:36:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:36:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:36:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:38:2: error: request for member ‘counter’ in something not a structure or union include/asm-generic/atomic.h: In function ‘atomic_long_inc’: include/asm-generic/atomic.h:43:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:43:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:43:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:45:2: error: implicit declaration of function ‘atomic64_inc’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_dec’: include/asm-generic/atomic.h:50:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:50:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:50:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:52:2: error: implicit declaration of function ‘atomic64_dec’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add’: include/asm-generic/atomic.h:57:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:57:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:57:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:59:2: error: implicit declaration of function ‘atomic64_add’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub’: include/asm-generic/atomic.h:64:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:64:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:64:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:66:2: error: implicit declaration of function ‘atomic64_sub’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub_and_test’: include/asm-generic/atomic.h:71:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:71:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:71:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:73:2: error: implicit declaration of function ‘atomic64_sub_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_dec_and_test’: include/asm-generic/atomic.h:78:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:78:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:78:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:80:2: error: implicit declaration of function ‘atomic64_dec_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_inc_and_test’: include/asm-generic/atomic.h:85:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:85:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:85:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:87:2: error: implicit declaration of function ‘atomic64_inc_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add_negative’: include/asm-generic/atomic.h:92:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:92:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:92:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:94:2: error: implicit declaration of function ‘atomic64_add_negative’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add_return’: include/asm-generic/atomic.h:99:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:99:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:99:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:101:2: error: implicit declaration of function ‘atomic64_add_return’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub_return’: include/asm-generic/atomic.h:106:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:106:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:106:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:108:2: error: implicit declaration of function ‘atomic64_sub_return’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_inc_return’: include/asm-generic/atomic.h:113:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:113:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:113:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h: In function ‘atomic_long_dec_return’: include/asm-generic/atomic.h:120:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:120:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:120:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h: In function ‘atomic_long_add_unless’: include/asm-generic/atomic.h:127:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:127:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:127:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:129:2: error: implicit declaration of function ‘atomic64_add_unless’ [-Werror=implicit-function-declaration] In file included from include/linux/mmzone.h:16:0,
from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/linux/nodemask.h: In function ‘__first_node’: include/linux/nodemask.h:233:2: error: implicit declaration of function ‘find_first_bit’ [-Werror=implicit-function-declaration] include/linux/nodemask.h: In function ‘__next_node’: include/linux/nodemask.h:239:2: error: implicit declaration of function ‘find_next_bit’ [-Werror=implicit-function-declaration] include/linux/nodemask.h: In function ‘__first_unset_node’: include/linux/nodemask.h:257:2: error: implicit declaration of function ‘find_first_zero_bit’ [-Werror=implicit-function-declaration] In file included from include/linux/elf.h:7:0,
from include/linux/module.h:14,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/elf.h: In function ‘start_ia32_thread’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/elf.h:165:2: error: implicit declaration of function ‘load_gs_index’ [-Werror=implicit-function-declaration] In file included from include/linux/slab_def.h:63:0,
from include/linux/slab.h:157,
from include/linux/percpu.h:5,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:4,
from include/linux/module.h:20,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/linux/kmalloc_sizes.h: In function ‘kmalloc’: include/linux/kmalloc_sizes.h:5:5: warning: &CONFIG_X86_L1_CACHE_SHIFT& is not defined [-Wundef] include/linux/kmalloc_sizes.h:9:5: warning: &CONFIG_X86_L1_CACHE_SHIFT& is not defined [-Wundef] In file included from include/linux/module.h:20:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_inc’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:22:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_dec’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:28:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:34:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_sub’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:41:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_sub_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:59:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_dec_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:77:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_inc_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:95:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add_negative’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:114:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add_return’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:137:30: error: request for member ‘counter’ in something not a structure or union In file included from include/linux/module.h:22:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/module.h: At top level: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/module.h:68:2: error: #error unknown processor family In file included from include/linux/fs.h:362:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:8: include/linux/dcache.h: In function ‘dget’: include/linux/dcache.h:334:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’
In file included from include/linux/fs.h:368:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:8: include/linux/radix-tree.h: In function ‘radix_tree_replace_slot’: include/linux/radix-tree.h:154:2: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: At top level: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:10:27: fatal error: asm/arch/gpio.h: No such file or directory cc1: some warnings being treated as errors
compilation terminated. make[2]: *** [/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.o] Error 1 make[1]: *** [_module_/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053] Error 2 make[1]: Leaving directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30' make: *** [all] Error 2
3. 首先解决asm/arch/gpio.h找不到的问题。
asm/arch/gpio.h位于原来的2.6.24.3目录下的目录结构linux-2.6.24.3/include/asm-arm/arch-at91下面,
而asm是asm-arm的软链接,arch是arch-at91的软链接;所以arm/arch/gpio.h实际上就是linux-2.6.30/include/asm-arm/arch-at91/gpio.h;
但在2.6.30内核下,目录结构变了。linux-2.6.30/include/asm-arm下面只有区区两个文件asm-offsets.h和mach-types.h,而且都是自动生成的文件。
针对不同厂家的GPIO文件到哪里去了呢?
dingq@u:~/wrk/pdu/kernel/linux-2.6.30$ find . -name gpio.h ./arch/microblaze/include/asm/gpio.h ./arch/x86/include/asm/gpio.h ./arch/blackfin/mach-bf518/include/mach/gpio.h ./arch/blackfin/mach-bf538/include/mach/gpio.h ./arch/blackfin/mach-bf537/include/mach/gpio.h ./arch/blackfin/mach-bf527/include/mach/gpio.h ./arch/blackfin/mach-bf561/include/mach/gpio.h ./arch/blackfin/mach-bf533/include/mach/gpio.h ./arch/blackfin/include/asm/gpio.h ./arch/blackfin/mach-bf548/include/mach/gpio.h ./arch/xtensa/platforms/s6105/include/platform/gpio.h ./arch/xtensa/variants/s6000/include/variant/gpio.h ./arch/xtensa/include/asm/gpio.h ./arch/h8300/include/asm/gpio.h ./arch/arm/mach-mmp/include/mach/gpio.h ./arch/arm/mach-ixp2000/include/mach/gpio.h ./arch/arm/mach-sa1100/include/mach/gpio.h ./arch/arm/mach-imx/include/mach/gpio.h ./arch/arm/mach-mv78xx0/include/mach/gpio.h ./arch/arm/mach-davinci/include/mach/gpio.h ./arch/arm/mach-s3c6400/include/mach/gpio.h ./arch/arm/mach-pnx4008/include/mach/gpio.h ./arch/arm/plat-omap/include/mach/gpio.h ./arch/arm/mach-at91/include/mach/gpio.h ./arch/arm/mach-ixp4xx/include/mach/gpio.h ./arch/arm/mach-s3c2410/include/mach/gpio.h ./arch/arm/plat-pxa/include/plat/gpio.h ./arch/arm/plat-mxc/include/mach/gpio.h ./arch/arm/mach-iop32x/include/mach/gpio.h ./arch/arm/mach-ks8695/include/mach/gpio.h ./arch/arm/mach-pxa/include/mach/gpio.h ./arch/arm/mach-kirkwood/include/mach/gpio.h ./arch/arm/mach-ep93xx/include/mach/gpio.h ./arch/arm/mach-iop33x/include/mach/gpio.h ./arch/arm/mach-ns9xxx/include/mach/gpio.h ./arch/arm/mach-orion5x/include/mach/gpio.h ./arch/arm/mach-gemini/include/mach/gpio.h ./arch/arm/plat-orion/include/plat/gpio.h ./arch/arm/mach-l7200/include/mach/gpio.h ./arch/arm/include/asm/gpio.h ./arch/sparc/include/asm/gpio.h ./arch/powerpc/include/asm/gpio.h ./arch/mips/include/asm/mach-generic/gpio.h ./arch/mips/include/asm/pmc-sierra/msp71xx/gpio.h ./arch/mips/include/asm/mach-au1x00/gpio.h ./arch/mips/include/asm/mach-pnx833x/gpio.h ./arch/mips/include/asm/gpio.h ./arch/mips/include/asm/mach-rc32434/gpio.h ./arch/mips/include/asm/mach-bcm47xx/gpio.h ./arch/sh/include/asm/gpio.h ./arch/sh/include/cpu-sh3/cpu/gpio.h ./arch/avr32/include/asm/gpio.h ./arch/avr32/mach-at32ap/include/mach/gpio.h ./include/asm-generic/gpio.h ./include/config/generic/gpio.h ./include/config/i2c/gpio.h ./include/linux/mfd/wm8350/gpio.h ./include/linux/mfd/pcf50633/gpio.h ./include/linux/gpio原来都挪到了linux-2.6.30/arch目录下,驱动程序的源程序中将头文件包含语句
#include &asm/arch/gpio.h&
#include &../arch/arm/mach-at91/include/mach/gpio.h&
使用make命令重新编译
dingq@u:~/startech_pdu/fw/dir-struct/pdu/drivers/att7053$ make make -C /home/dingq/wrk/pdu/kernel/linux-2.6.30/ M=/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053 modules make[1]: Entering directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30'
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.o In file included from include/linux/prefetch.h:14:0,
from include/linux/list.h:6,
from include/linux/module.h:9,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:115:30: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function) /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:115:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:160:0: warning: &cache_line_size& redefined [enabled by default] include/linux/cache.h:64:0: note: this is the location of the previous definition /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:240:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:271:1: error: requested alignment is not a constant /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h: In function ‘native_get_debugreg’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:497:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h: In function ‘native_set_debugreg’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/processor.h:524:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’ In file included from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic.h:4:0,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/thread_info.h:24,
from include/linux/thread_info.h:55,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/stat.h:60,
from include/linux/module.h:10,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h: At top level: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:213:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:227:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:243:49: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:259:33: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:272:33: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:287:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:305:41: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:324:49: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:341:48: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:350:48: error: unknown type name ‘atomic64_t’ /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:399:39: error: unknown type name ‘atomic64_t’ In file included from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic_64.h:458:0,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/atomic.h:4,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/thread_info.h:24,
from include/linux/thread_info.h:55,
from include/linux/preempt.h:9,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:29,
from include/linux/time.h:8,
from include/linux/stat.h:60,
from include/linux/module.h:10,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/asm-generic/atomic.h:23:1: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h: In function ‘atomic_long_read’: include/asm-generic/atomic.h:29:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:29:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:29:19: note: each undeclared identifier is reported only once for each function it appears in include/asm-generic/atomic.h:29:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:31:15: error: request for member ‘counter’ in something not a structure or union include/asm-generic/atomic.h: In function ‘atomic_long_set’: include/asm-generic/atomic.h:36:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:36:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:36:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:38:2: error: request for member ‘counter’ in something not a structure or union include/asm-generic/atomic.h: In function ‘atomic_long_inc’: include/asm-generic/atomic.h:43:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:43:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:43:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:45:2: error: implicit declaration of function ‘atomic64_inc’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_dec’: include/asm-generic/atomic.h:50:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:50:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:50:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:52:2: error: implicit declaration of function ‘atomic64_dec’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add’: include/asm-generic/atomic.h:57:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:57:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:57:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:59:2: error: implicit declaration of function ‘atomic64_add’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub’: include/asm-generic/atomic.h:64:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:64:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:64:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:66:2: error: implicit declaration of function ‘atomic64_sub’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub_and_test’: include/asm-generic/atomic.h:71:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:71:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:71:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:73:2: error: implicit declaration of function ‘atomic64_sub_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_dec_and_test’: include/asm-generic/atomic.h:78:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:78:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:78:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:80:2: error: implicit declaration of function ‘atomic64_dec_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_inc_and_test’: include/asm-generic/atomic.h:85:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:85:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:85:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:87:2: error: implicit declaration of function ‘atomic64_inc_and_test’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add_negative’: include/asm-generic/atomic.h:92:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:92:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:92:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:94:2: error: implicit declaration of function ‘atomic64_add_negative’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_add_return’: include/asm-generic/atomic.h:99:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:99:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:99:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:101:2: error: implicit declaration of function ‘atomic64_add_return’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_sub_return’: include/asm-generic/atomic.h:106:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:106:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:106:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:108:2: error: implicit declaration of function ‘atomic64_sub_return’ [-Werror=implicit-function-declaration] include/asm-generic/atomic.h: In function ‘atomic_long_inc_return’: include/asm-generic/atomic.h:113:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:113:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:113:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h: In function ‘atomic_long_dec_return’: include/asm-generic/atomic.h:120:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:120:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:120:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h: In function ‘atomic_long_add_unless’: include/asm-generic/atomic.h:127:2: error: unknown type name ‘atomic64_t’ include/asm-generic/atomic.h:127:19: error: ‘atomic64_t’ undeclared (first use in this function) include/asm-generic/atomic.h:127:31: error: expected expression before ‘)’ token include/asm-generic/atomic.h:129:2: error: implicit declaration of function ‘atomic64_add_unless’ [-Werror=implicit-function-declaration] In file included from include/linux/mmzone.h:16:0,
from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/linux/nodemask.h: In function ‘__first_node’: include/linux/nodemask.h:233:2: error: implicit declaration of function ‘find_first_bit’ [-Werror=implicit-function-declaration] include/linux/nodemask.h: In function ‘__next_node’: include/linux/nodemask.h:239:2: error: implicit declaration of function ‘find_next_bit’ [-Werror=implicit-function-declaration] include/linux/nodemask.h: In function ‘__first_unset_node’: include/linux/nodemask.h:257:2: error: implicit declaration of function ‘find_first_zero_bit’ [-Werror=implicit-function-declaration] In file included from include/linux/elf.h:7:0,
from include/linux/module.h:14,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/elf.h: In function ‘start_ia32_thread’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/elf.h:165:2: error: implicit declaration of function ‘load_gs_index’ [-Werror=implicit-function-declaration] In file included from include/linux/slab_def.h:63:0,
from include/linux/slab.h:157,
from include/linux/percpu.h:5,
from /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:4,
from include/linux/module.h:20,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: include/linux/kmalloc_sizes.h: In function ‘kmalloc’: include/linux/kmalloc_sizes.h:5:5: warning: &CONFIG_X86_L1_CACHE_SHIFT& is not defined [-Wundef] include/linux/kmalloc_sizes.h:9:5: warning: &CONFIG_X86_L1_CACHE_SHIFT& is not defined [-Wundef] In file included from include/linux/module.h:20:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_inc’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:22:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_dec’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:28:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:34:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_sub’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:41:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_sub_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:59:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_dec_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:77:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_inc_and_test’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:95:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add_negative’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:114:20: error: request for member ‘counter’ in something not a structure or union /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h: In function ‘local_add_return’: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/local.h:137:30: error: request for member ‘counter’ in something not a structure or union In file included from include/linux/module.h:22:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:4: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/module.h: At top level: /home/dingq/wrk/pdu/kernel/linux-2.6.30/arch/x86/include/asm/module.h:68:2: error: #error unknown processor family In file included from include/linux/fs.h:362:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:8: include/linux/dcache.h: In function ‘dget’: include/linux/dcache.h:334:3: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’ In file included from include/linux/fs.h:368:0,
from /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:8: include/linux/radix-tree.h: In function ‘radix_tree_replace_slot’: include/linux/radix-tree.h:154:2: error: invalid application of ‘sizeof’ to incomplete type ‘struct bug_entry’ /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: At top level: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:47:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:48:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:49:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:56:6: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:126:6: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘att7053resetChannel’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:133:25: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: At top level: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:146:6: warning: function declaration isn’t a prototype [-Wstrict-prototypes] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘att7053selectChannel’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:152:25: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘spi_out’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:163:29: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘spi_in’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:183:29: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘att7053read’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:196:25: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘att7053write’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:210:25: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘myatt_open’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:236:26: error: ‘NR_AIC_IRQS’ undeclared (first use in this function) /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function ‘myatt_ioctl’: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:271:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:279:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:285:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:296:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:302:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:308:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:314:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:320:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:326:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: At top level: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:429:5: warning: initialization from incompatible pointer type [enabled by default] /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:429:5: warning: (near initialization for ‘myatt_fops.read’) [enabled by default] cc1: some warnings being treated as errors
make[2]: *** [/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.o] Error 1 make[1]: *** [_module_/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053] Error 2 make[1]: Leaving directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30' make: *** [all] Error 2找不到arm/arch/gpio.h的提示消失了。
4. 但错误还是一大堆,从第一个错误开始看起,include/linux/prefetch.h的第14行
#include &asm/processor.h&
竟然调用的是linux-2.6.30/arch/x86/include/asm/processor.h,我要交叉编译arm,怎么会出来x86目录下的内容?
哦,原来驱动的Makefile文件中需要通过命令行方式来指定交叉编译工具和目标系统的;
将Makefile中的
make -C $(KERNEL_SRC) M=$(PWD) modules
make ARCH=arm CROSS_COMPILE=arm-linux- -C $(KERNEL_SRC) M=$(PWD) modules
重新使用make命令编译
dingq@u:~/startech_pdu/fw/dir-struct/pdu/drivers/att7053$ make make ARCH=arm CROSS_COMPILE=arm-linux- -C /home/dingq/wrk/pdu/kernel/linux-2.6.30/ M=/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053 modules make[1]: Entering directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30'
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.o /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:47: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:48: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:49: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:56: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:126: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:146: warning: function declaration isn't a prototype /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function 'myatt_ioctl': /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:271: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:279: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:285: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:296: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:302: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:308: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:314: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:320: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:326: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: At top level: /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:429: warning: initialization from incompatible pointer type /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c: In function 'myatt_read': /home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.c:388: warning: 'value' is used uninitialized in this function
Building modules, stage 2.
MODPOST 1 modules
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.mod.o
/home/dingq/startech_pdu/fw/dir-struct/pdu/drivers/att7053/att7053.ko make[1]: Leaving directory `/home/dingq/wrk/pdu/kernel/linux-2.6.30'成功生成驱动程序att7053.ko。
感谢关注 Ithao123精品文库频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊}

我要回帖

更多关于 codeblocks下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信