大家好,
我们的板卡是C6670+Spartan6,C6670与S6之间有I2C连接,计划将C6670设置为I2C slave boot模式,由S6完成对C6670的boot。
但是我对Boot有一些疑问,希望大家帮助解答~
******************************************************************************************************************************************************
问题1:如果将C6670的Bootmode引脚置为I2C slave模式下,上电后RBL将“bypass PLL and runs the CorePacs at the reference clock frequency and also configures the I2C bus at the lower rate to start with“。
我的疑问是:在连接仿真器在线调试状态下,是GEL负责完成了main PLL的配置以实现工作在1GHz或者1.25GHz之类的。
那么在非在线调试I2C slave boot方式下,main PLL是怎么配置起来的?
或者说是在非在线调试I2C slave boot方式下,那个文件或者什么东西,替代了GEL的功能(比如配置main PLL、初始化DDR3等等)?
需要在程序中加上mian PLL的配置代码吗?还是说用boot parameter table完成对main PLL的配置?
如果是用boot parameter table的方式,那么如何编写或者生成boot parameter table?
比如,我想设置main PLL使得C6670 Core工作在1GHz,那么怎么编写对应的boot parameter table?
******************************************************************************************************************************************************
问题2:在连接仿真器在线调试状态下,有着CMD文件指定了程序中各种变量的物理存放地址。
那么在非在线调试I2C slave boot状态下,在DSP内部运行中的程序在某个时刻生成的局部变量,是如何知道应该在哪生成的呢?
难道CMD文件的信息其实也融合进了.out文件中去了?然后使用hex工具转换后,这些信息仍然存在?
******************************************************************************************************************************************************
问题3:在I2C slave模式下,是不是只要使用hex工具将.out文件转换成boot table,然后把这个boot table文件给FPGA,当C6670上电后,FPGA负责把这个boot table一个一个byte地传给C6670,就能最终boot起来?
******************************************************************************************************************************************************
希望大家帮助解答,谢谢哈~~