uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(50):.spinlock
2019-07-13 15:52发布
生成海报
快乐虾
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)
欢迎转载,但请保留作者信息
有一个错误:
[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
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)
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮