快乐虾
http://blog.csdn.net/lights_joy/
本文适用于
ADSP-BF561
uclinux-2008r1.5-rc3(smp patch)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
移植接近尾声,不想在用release编译的时候又碰见了internal eror:
..\..\..\..\kernel\hrtimer.c
At end of source: : internal error: Uncaught exception Assertion failed raised
at ../../../bril/optimiser/dominators.c:911 (in pass
hoist_constant_loop_exits during compilation of _lock_hrtimer_base).
Please submit a bug report with this message, the command line used,
type of machine and the output of the compiler when you add -ED -v
to the command line. Please also send us the pre-processed file that
is generated by the -ED option (the file generated is named
<original_filename>.i)
1 catastrophic error detected in the compilation of "..\..\..\..\kernel\hrtimer.c".
Compilation aborted.
cc3089: fatal error: Compilation failed
Tool failed with exit/exception code: 1.
查提示中出现的lock_hrtimer_base函数:
static
struct hrtimer_clock_base *lock_hrtimer_base(const struct hrtimer *timer,
unsigned long *flags)
{
struct hrtimer_clock_base *base;
for (;;) {
base = timer->base;
if (likely(base != NULL)) {
spin_lock_irqsave(&base->cpu_base->lock, *flags);
if (likely(base == timer->base))
return base;
/* The timer has migrated to another CPU: */
spin_unlock_irqrestore(&base->cpu_base->lock, *flags);
}
cpu_relax();
}
}
在这里发现了两个likely,估计问题应该出在这里,直接将这两个likely注释掉。搞定!
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(74):initramfs(2009-02-27)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(75):Milestone:内核成功启动(2009-02-27)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(76):DM9000网卡驱动(2009-3-1)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(77):No usable address families found.(2009-3-3)