![]() |
|
||||||||||||||
| | 首页 | 新闻 | 文库 | 方案 | 技术 | 独家 | 座谈 | 下载 | 图库 | 开发板 | 仿真器 | 邮购 | VIP | 芯片 | 客户评价 | 论坛 | | ||
|
||
|
|||||
| U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(6):使用u-boot的crt代码 | |||||
作者:快乐虾 文章来源:http://blog.csdn.net/lights_joy 点击数: 更新时间:2008-4-18 ![]() |
|||||
|
1 向导生成的crt代码
在使用vdsp5的向导创建一个新的工程时,它会默认生成一个*_basiccrt.s的文件,其中的*号为工程的名称。这就是在AB两个核中使用的crt文件了,然后通过ldf文件中的相应设置将crt代码放在两个核各自的起始位置上(A核为0xffa0 0000,B核为0xff60 0000)。下面就是ldf文件中的相应内容:
// 添加doj文件到A核工程中
$OBJECTS_CORE_A =
".\Debug\u-boot_basiccrt.doj"
, RT_LIB_NAME(profile561)
, $COMMAND_LINE_OBJECTS {!DualCoreMem("CoreB")}
, "cplbtab561a.doj"
, RT_OBJ_NAME(crtn561)
…
PROCESSOR p0
{
…
// 指定将basiccrt.doj的第一行程序写入到0xFFA00000,其中start为*_basiccrt.s中第一行语句的标号
RESOLVE(start, 0xFFA00000)
KEEP(start,_main)
…
SECTIONS
{
…
L1_code
{
…
// 将basiccrt.s中的代码放到L1_cache中
INPUT_SECTIONS($OBJECTS_CORE_A(program) $LIBRARIES_CORE_A(program))
…
} > MEM_A_L1_CODE
…
} // SECTIONS
…
}
B核的代码与此相似,不做分析。
2 在A核中使用u-boot提供的CRT
u-boot使用的crt文件为u-boot-1.1.6-2008R1\cpu\blackfin\start.s,我们希望用此文件来替换vdsp向导生成的u-boot_basiccrt.s。
1. 将start.s添加到corea.dlb工程中,由于编译器的不同,此处需要做一些适当的修改,参见前几篇文章的说明。
2. 在ldf文件中删除A核对u-boot_basiccrt.s的引用:
$OBJECTS_CORE_A =
/*$VDSG<insert-user-objects-for-coreA-beginning> */
/* Text inserted between these $VDSG comments will be preserved */
/*$VDSG<insert-user-objects-for-coreA-beginning> */
//".\Debug\u-boot_basiccrt.doj" // 注释掉这行,还要删除下一行的逗号
, RT_LIB_NAME(profile561)
, $COMMAND_LINE_OBJECTS {!DualCoreMem("CoreB")}
, "cplbtab561a.doj"
, RT_OBJ_NAME(crtn561)
3. 因为u-boot_basiccrt.s中入口为start,而start.s中的入口为_start,所以还必须修改如下两行:
RESOLVE(start, 0xFFA00000)
KEEP(start,_main)
将之修改为
RESOLVE(_start, 0xFFA00000)
KEEP(_start,_main)
经过上述修改,u-boot会提示链接错误,如下所示:
[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'_bss_end [__bss_end]' referenced from 'corea.dlb[start.doj]'
'_bss_start [__bss_start]' referenced from 'corea.dlb[start.doj]'
'cpu_init_f [_cpu_init_f]' referenced from 'corea.dlb[start.doj]'
'initcode [_initcode]' referenced from 'corea.dlb[start.doj]'
但是这已经标志着我们开始迈出第一步了,不是吗?
|
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 本站介绍 | 合作联络 | 欢迎投稿 | 广告业务 | 网站地图 | 设为首页 | 加入收藏 | 友情链接 | 网站公告 | 联系我们 | | |||
|