由于程序比较大,所以之前方案本来是想通过HPI二次boot方式去引导DSP,其中Host为一块FPGA。但是今天又查看了很多资料,发现HPI boot方式跟ROM boot方式有些不一样:
对于C6701DSP ,ROM引导方式是自动化从ROM中前64Kd的应用程序拷贝到内部存储器中的0x0地址,然后引导完成后跳转到0x0地址执行应用程序;
在HPI boot方式情况下,CPU holding device reset状态时处于失速状态,而DSP外设处于释放状态,这时Host通过HPI接口配置PLL,EMIF等外设,然后再将程序拷贝到0x0地址,Host置位相关寄存器使得CPU运行起来并执行0x0处的代码。
查看了一下论坛上的资料,其中谈到Host可以通过HPI访问DSP外挂的SDRAM,由此觉得可以Host先利用HPI接口对DSP PLL,EMIF外设进行初始化,然后再将应用程序直接拷贝到DSP外挂的SDRAM上,然后再将DSP程序指针指向外挂的SDRAM上。
不知道上面的方法是否可行?如果是可行的,最后一步然后“将DSP程序指针指向外挂的SDRAM上”怎么实现,有没有示例代码?