快乐虾
http://blog.youkuaiyun.com/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
uclinux-2008r1.5-rc3(smp patch)
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
有一个错误:
[Warning li2060] The following input section(s) that contain program code
and/or data have not been placed into the executable for processor 'p0'
as there are no relevant commands specified in the LDF:
kernel.dlb[spinlock.doj](.spinlock.text)
uclinux为spinlock相关的函数定义了一个段:
#define LOCK_TEXT \
ALIGN_FUNCTION(); \
VMLINUX_SYMBOL(__lock_text_start) = .; \
*(.spinlock.text) \
VMLINUX_SYMBOL(__lock_text_end) = .;
而这个LOCK_TEXT是放在.text中的:
.text :
{
__text = .;
_text = .;
__stext = .;
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
KPROBES_TEXT
*(.text.*)
*(.fixup)
. = ALIGN(16);
___start___ex_table = .;
*(__ex_table)
___stop___ex_table = .;
. = ALIGN(4);
__etext = .;
}
因此我们需要在LDF文件中加上它:
uclinux_text
{
__text = .;
_text = .;
__stext = .;
/* TEXT_TEXT */
INPUT_SECTIONS($OBJECTS_CORE_A(L1_code) $LIBRARIES_CORE_A(L1_code))
INPUT_SECTIONS($OBJS_LIBS_INTERNAL_CORE_A(program))
INPUT_SECTIONS($OBJS_LIBS_NOT_EXTERNAL_CORE_A(program))
INPUT_SECTIONS($OBJECTS_CORE_A(program) $LIBRARIES_CORE_A(program))
INPUT_SECTIONS($LIBRARIES_CORE_A(.text.init.refok))
/*
SCHED_TEXT
*/
//LOCK_TEXT
__lock_text_start = .;
INPUT_SECTIONS($LIBRARIES_CORE_A(.spinlock.text))
__lock_text_end = .;
/*
KPROBES_TEXT
*(.text.*)
*(.fixup)
. = ALIGN(16);
___start___ex_table = .;
*(__ex_table)
___stop___ex_table = .;
*/
INPUT_SECTION_ALIGN(4)
__etext = .;
} > MEM_UCLINUX_TEXT
1 参考资料
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(45):未命名union的后遗症(2009-01-21)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(46):fls_long的问题(2009-1-21)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(47):per_cpu的奇怪问题(2009-1-22)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(48):__start___param(2009-1-22)
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(49):likely(2009-1-24)
本文介绍了在ADI BF561 DSP上使用uCLinux时遇到的一个关于spinlock段未被正确放置到可执行文件中的警告,并详细展示了如何修改LDF文件来解决这个问题。
1262

被折叠的 条评论
为什么被折叠?



