快乐虾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)欢迎转载,但请保留作者信息经过前面的处理,还有一个错误:[Error li1080] "corea.dlb[head.doj](program):0x18e" address of '_cmdline_init' (=0x30000) is out of rangeReferenced from 0xffa00bfeValid relative range is [-0x1000000,0xfffffe]看看head.s中对cmdline_init的调用:/* pass the uboot arguments to the global value command line */R0 = R7;call _cmdline_init;再看看cmdline_init的声明:void __init cmdline_init(constchar *r0)看看__init的定义:#define __init__attribute__ ((__section__ (".init.text")))也就是说,用__init修饰的代码是放在.init.text段中的,而.init.text段是放在SDRAM中的,但是head.s的代码是放在L1中的,因此就造成了这样的错误。解决的方法很简单,直接将call改为call.x:/* pass the uboot arguments to the global value command line */R0 = R7;call.x _cmdline_init;