uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(16):使用head.s做为入口点
来源:互联网 发布:淘宝上阿迪达斯是真的 编辑:程序博客网 时间:2024/05/21 07:48
快乐虾
http://blog.csdn.net/lights_joy/
lights@hb165.com
本文适用于
ADI bf561 DSP
uclinux-2008r1.5-rc3
Visual DSP++ 5.0(update 5)
欢迎转载,但请保留作者信息
创建uclinux工程时,默认的入口是uclinux _basiccrt.s,而我们需要用head.s做为入口,因此需要修改ldf文件中的相关定义。
在uclinux.ldf文件中有这么几行:
$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> */
"uclinux_basiccrt.doj"
, RT_LIB_NAME(profile561)
, $COMMAND_LINE_OBJECTS {!DualCoreMem("CoreB")}
, "cplbtab
, RT_OBJ_NAME(crtn561)
在此先删除uclinux _basiccrt.doj,于是就变成了
$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> */
, RT_LIB_NAME(profile561)
, $COMMAND_LINE_OBJECTS {!DualCoreMem("CoreB")}
, "cplbtab
, RT_OBJ_NAME(crtn561)
此外,还要在processor p0中保留__start的位置。在默认生成的LDF文件中,是这样的:
RESOLVE(start, 0xFFA00000)
KEEP(start,_main)
我们将其指向head.s中的__start,修改后变成:
RESOLVE(__start, 0xFFA00000)
KEEP(__start,_main)
当然,这样修改后会造成一系列的错误:
[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'__bss_start [___bss_start]' referenced from 'corea.dlb[head.doj]'
'__bss_stop [___bss_stop]' referenced from 'corea.dlb[head.doj]'
'_sdata [__sdata]' referenced from 'corea.dlb[head.doj]'
'_stext [__stext]' referenced from 'corea.dlb[head.doj]'
'bf53x_relocate_l1_mem [_bf53x_relocate_l1_mem]' referenced from 'corea.dlb[head.doj]'
'cmdline_init [_cmdline_init]' referenced from 'corea.dlb[head.doj]'
'init_pda [_init_pda]' referenced from 'corea.dlb[head.doj]'
'init_thread_union [_init_thread_union]' referenced from 'corea.dlb[head.doj]'
'start_kernel [_start_kernel]' referenced from 'corea.dlb[head.doj]'
没关系,这正好说明我们的head.s已经开始起作用了。
1 参考资料
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(1):前言(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(2):代码注释(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(3):vdsp项目创建(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(4):目录差异(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(5):'bf561.h'的问题(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(6):CONFIG_BFIN_KERNEL_CLOCK(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(7):CONFIG_MEM_MT48LC16M16A2TG_75(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(8):CONFIG_CLKIN_HZ(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(9):CONFIG_MEM_SIZE(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(10):CONFIG_FLASH_SPEED_BTT(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(11):__INIT(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(12):trace_buffer_init(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(13):ENDPROC(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(14):__FINIT(
uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(15):CONFIG_BANK_x(
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(16):使用head.s做为入口点
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(4):使用head.s做为入口点
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(5):'bf561.h'的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(38):未命名union的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(45):未命名union的后遗症
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(46):fls_long的问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(47):per_cpu的奇怪问题
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(70):保留VDSP的heap
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(71):l1_data_sram_init的疑惑
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(72):中断时SP的保存
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(1):前言
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(2):代码注释
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(3):vdsp项目创建
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(4):目录差异
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(6):CONFIG_BFIN_KERNEL_CLOCK
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(7):CONFIG_MEM_MT48LC16M16A2TG_75
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(8):CONFIG_CLKIN_HZ
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(9):CONFIG_MEM_SIZE
- 如何给Ajax 和 RIA framework 排序
- bugzilla使用的GD包1.43版本与最新包1.44版本的两点区别
- Converse3D虚拟社区——引领未来VR行业新航向
- Apache2“本地计算机上的Apache服务启动后又停止了”的错误的解决方案
- MFC应用程序中处理消息的顺序
- uclinux-2008R1.5-RC3(bf561)到VDSP5的移植(16):使用head.s做为入口点
- 《Joomla!建站步步通》封皮设计完成
- Converse3D虚拟现实编辑器正式推出8.02共享版
- 寻找最大的K个数
- 索引的应用规律总结(基础理论) ——oracle
- Python专家编程
- Installing ClamAV 0.93.3
- oracle的学习
- Converse3D基于WEB的大场景展示方案