|
|

楼主 |
发表于 2006-4-4 10:05:25
|
显示全部楼层
那样应该怎么办?
我的程序最终要烧录到arm板中运行,它是一个控制程序。我的程序实现的功能是:三个中断分别是两个串口和一个定时器。两个串口给被控对象发送指令,定时器中断中执行控制算法。之所以没用内核提供的定时器,是因为其时间间隔达不到要求。程序运行时,每次时钟中断都执行控制算法,只不过串口没发指令时,已经满足控制要求,被控对象不用再控制。串口发指令时,时钟中断再控制被控对象满足控制要求。
下面是我用gcc -D__KERNEL__ -Iusr/src/linux-2.4.20-8/include -o control control.c 后出现的错误(还有很多warning我没贴上),不用-D__KERNEL__就无法调用request_irq()
这些错都是在linux/sched.h中出现的
In file included from /usr/src/linux-2.4.20-8/include/linux/signal.h:5,
from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
from control.c:9:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: parse error before "clock_t"
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:48: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:49: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:50: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:62: parse error before '}' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:62: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:63: parse error before '}' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:63: warning: data definition has no type or storage class
In file included from /usr/src/linux-2.4.20-8/include/linux/signal.h:5,
from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
from control.c:9:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:220: parse error before '*' token
/usr/src/linux-2.4.20-8/include/asm/siginfo.h: In function `copy_siginfo':
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: `from' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: (Each undeclared identifier is reported only once
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:222: for each function it appears in.)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:223: `to' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/asm/siginfo.h: At top level:
/usr/src/linux-2.4.20-8/include/asm/siginfo.h:229: parse error before '*' token
In file included from /usr/src/linux-2.4.20-8/include/linux/sched.h:28,
from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/signal.h:14: parse error before "siginfo_t"
/usr/src/linux-2.4.20-8/include/linux/signal.h:14: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/signal.h:225: parse error before '*' token
In file included from /usr/src/linux-2.4.20-8/include/linux/sched.h:97,
from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/time.h: At top level:
/usr/src/linux-2.4.20-8/include/linux/time.h:9: redefinition of `struct timespec'
/usr/src/linux-2.4.20-8/include/linux/time.h:88: redefinition of `struct timeval'
/usr/src/linux-2.4.20-8/include/linux/sched.h:293: field `core_done' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:460: field `times' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:461: field `group_times' has incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:472: parse error before "kernel_cap_t"
/usr/src/linux-2.4.20-8/include/linux/sched.h:472: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/sched.h:473: parse error before ':' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:524: parse error before '*' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:524: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/linux/sched.h:525: parse error before '}' token
/usr/src/linux-2.4.20-8/include/linux/sched.h:685: field `task' has incomplete type
In file included from control.c:9:
/usr/src/linux-2.4.20-8/include/linux/sched.h:742: parse error before "siginfo_t"
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `signal_pending':
/usr/src/linux-2.4.20-8/include/linux/sched.h:766: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `on_sig_stack':
/usr/src/linux-2.4.20-8/include/linux/sched.h:773: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:773: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `sas_ss_flags':
/usr/src/linux-2.4.20-8/include/linux/sched.h:778: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `suser':
/usr/src/linux-2.4.20-8/include/linux/sched.h:803: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:804: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `fsuser':
/usr/src/linux-2.4.20-8/include/linux/sched.h:812: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:813: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `capable':
/usr/src/linux-2.4.20-8/include/linux/sched.h:828: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:833: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `thread_group_empty':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1036: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `task_lock':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1049: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `get_task_mm':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1068: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `d_path':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1083: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1084: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1084: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h:1085: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h:1085: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h:1087: `dcache_lock' undeclared (first use in this function)
/usr/src/linux-2.4.20-8/include/linux/sched.h:1088: warning: assignment makes pointer from integer without a cast
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `set_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1097: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `clear_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1102: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `set_tsk_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1107: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `clear_tsk_need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1112: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/sched.h: In function `need_resched':
/usr/src/linux-2.4.20-8/include/linux/sched.h:1117: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/mm.h:31,
from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:5,
from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/swap.h: At top level:
/usr/src/linux-2.4.20-8/include/linux/swap.h:66: parse error before "kdev_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:66: warning: no semicolon at end of struct or union
/usr/src/linux-2.4.20-8/include/linux/swap.h:79: parse error before '}' token
/usr/src/linux-2.4.20-8/include/linux/swap.h:167: parse error before "swp_entry_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:176: parse error before "swp_entry_t"
/usr/src/linux-2.4.20-8/include/linux/swap.h:181: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:182: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:191: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:193: parse error before "get_swap_page"
/usr/src/linux-2.4.20-8/include/linux/swap.h:193: warning: data definition has no type or storage class
/usr/src/linux-2.4.20-8/include/linux/swap.h:194: parse error before "unsigned"
/usr/src/linux-2.4.20-8/include/linux/swap.h:196: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:197: parse error before "unsigned"
/usr/src/linux-2.4.20-8/include/linux/swap.h:198: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:199: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/swap.h:245: parse error before "entry"
In file included from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:5,
from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/mm.h:575: warning: `struct inode' declared inside parameter list
/usr/src/linux-2.4.20-8/include/linux/mm.h:609: warning: parameter names (without types) in function declaration
/usr/src/linux-2.4.20-8/include/linux/mm.h: In function `pf_gfp_mask':
/usr/src/linux-2.4.20-8/include/linux/mm.h:719: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/mm.h: In function `expand_stack':
/usr/src/linux-2.4.20-8/include/linux/mm.h:739: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/mm.h:740: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/highmem.h:5,
from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:8,
from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
from control.c:10:
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_mm':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:85: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_page':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:92: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h: In function `flush_tlb_range':
/usr/src/linux-2.4.20-8/include/asm/pgalloc.h:99: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.4.20-8/include/linux/vmalloc.h:8,
from /usr/src/linux-2.4.20-8/include/asm/io.h:47,
from control.c:10:
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kmap':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:20: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kunmap':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:25: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h: In function `bh_kmap_irq':
/usr/src/linux-2.4.20-8/include/linux/highmem.h:41: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:41: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:42: dereferencing pointer to incomplete type
/usr/src/linux-2.4.20-8/include/linux/highmem.h:48: dereferencing pointer to incomplete type
In file included from control.c:12:
/usr/include/string.h: At top level:
/usr/include/string.h:39: parse error before '?' token
/usr/include/string.h:58: parse error before '?' token |
|