uclinux-2008R1-RC8(bf561)到VDSP5的移植(57): _NSIG_WORDS_is_unsupported_size

来源:互联网 发布:淘宝摄影教程 编辑:程序博客网 时间:2024/05/29 15:31
 
快乐虾
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()");}
 
原创粉丝点击