您的位置:首页 > 运维架构 > Linux

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

2009-10-31 14:22 295 查看
快乐虾 http://blog.csdn.net/lights_joy/ lights@hb165.com

本文适用于
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 参考资料

让vdsp与uclinux共舞(2):vdsp的影响(2009-10-31)
让VDSP与uclinux共舞(1):开篇(2009-10-30)
关于uClinux-2.6(bf561) for VDSP的移植(2008/3/11)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: