uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(50):.spinlock.text

本文介绍了在ADI BF561 DSP上使用uCLinux时遇到的一个关于spinlock段未被正确放置到可执行文件中的警告,并详细展示了如何修改LDF文件来解决这个问题。

快乐虾

http://blog.youkuaiyun.com/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)

uclinuxspinlock相关的函数定义了一个段:

#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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值