快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
优视BF561EVB开发板
uclinux-2008r1-rc8 (移植到vdsp5)
Visual DSP++ 5.0
欢迎转载,但请保留作者信息
在include/linux/signal.h中使用了一个函数
_NSIG_WORDS_is_unsupported_size,其使用过程大致如下所示:
static inline int sigisemptyset(sigset_t *set)
{
extern void _NSIG_WORDS_is_unsupported_size(void);
switch (_NSIG_WORDS) {
case 4:
return (set->sig[3] | set->sig[2] |
set->sig[1] | set->sig[0]) == 0;
case 2:
return (set->sig[1] | set->sig[0]) == 0;
case 1:
return set->sig[0] == 0;
default:
_NSIG_WORDS_is_unsupported_size();
return 0;
}
}
在这里,_NSIG_WORDS的定义为:
#define _NSIG 64
#define _NSIG_BPW 32
#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
也就是编译时常数,这样在优化时并不会并产生代码,也就没有链接错误。但是在VDSP下调试编译时会产生
_NSIG_WORDS_is_unsupported_size符号未找到的链接错误。
为此,直接将之定义为:
inline void _NSIG_WORDS_is_unsupported_size() {panic("_NSIG_WORDS_is_unsupported_size()");}