让vdsp与uclinux共舞(3):boot kernel

快乐虾

http://blog.csdn.net/lights_joy/

[email protected]

  

本文适用于

ADSP-BF561

Visual DSP++ 5.0(update 6)

Bfin-uclinux-2009r1.6

  

欢迎转载,但请保留作者信息

 

由于我们不知道VDSP连接到开发板之前的PC指针,因此无法直接修改PC指针的值以让程序继续运行。一种很自然的想法是将flash上的程序重新引导执行一次。

回想561的启动过程,复位后DSP自动从内部的bootrom,即ef000000这个位置开始启动,然后它将调用boot kernel,也就是我们在生成LDR时指定的kernel进行实际代码的加载,即所谓的second stage,默认情况下将使用561_prom16.dxe这个文件。现在我们希望直接使用这个文件实现重新加载flash上的程序。

首先在vdsp下复位DSP。因为我们已经取消了vdsp的自动复位功能,所以自己干,复位后PC将停留在0xffa00000

vdsp下使用File -> Load program加载561_prom16.dxe

可以看到前面的三条语句做了一个跳转,实际代码放在L2中。

不管它,直接运行,在超级终端中可以看到uboot顺利启动。

vdsp中中断下来,可以看到各寄存器的状态,但此时没有符号信息,通过File -> Load symbol加载符号信息,我们就可以进行各种调试工作了。

到现在,我们基本知道如何通过vdsp控制uboot运行,但这并不是我们的目标,我们的目标是uClinux

 

 

 

 

 

1       参考资料

vdspuclinux共舞(2):vdsp的影响(2009-10-31)

VDSPuclinux共舞(1):开篇(2009-10-30)

关于uClinux-2.6(bf561) for VDSP的移植2008/3/11

 

 

 

你可能感兴趣的:(让vdsp与uclinux共舞(3):boot kernel)