uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(63):_NSIG_WOR
2019-07-13 16:42发布
生成海报
快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
优视BF561EVB开发板
uclinux-2008r1.5-rc3(smp patch)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
在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()");}
与此相似的还有一个叫__you_cannot_kmalloc_that_much的函数。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮