(1)将GEL文件中的DDR3A初始化得代码改写成C函数,通过仿真器加载可以初始化DDR3A。
(2)将编译出来的.out通过PCIE加载,测试.out文件执行完成,但是发现DDR3A没有被初始化
问题:通过仿真器加载运行和通过PCIE动态加载运行,之间是否还存在什么其他处理,为什么相同的文件通过仿真器和PCIE动态加载会出现两种不同的情况。
Shine:
请问您的代码是搬到DDR3里运行的吗? 如果是的话,需要在搬移之前初始化DDR3。
The RBL also provides an ability for the user to configure the DDR EMIF before loading the image into the external memory during the boot process using a DDR structure. This structure is reserved in the L2. For every section that the RBL reads, it verifies if the DDR enable magic word is set. If the magic word is set, then the DDR structure is used to initialize the DDR. The structure definition of the DDR varies from device to device. See the device-specific data manual for the DDR configuration structure.
www.ti.com/…/sprugy5c.pdf
user5315971:
回复 Shine:
我是将GEL文件中的代码改写成C函数,运行在二级缓存,让他初始化DDR3A,目前的问题是连接仿真器烧写进去可以初始化DDR3A,没有连接仿真器通过PCIE加载进去,发现程序也跑完成了,可是DDR3A没有被初始化。
Shine:
回复 user5315971:
用仿真器跟一下pcie加载后的代码运行情况,看有没有运行到DDR初始化那块代码。
processors.wiki.ti.com/…/Debugging_Boot_Issues
user5315971:
回复 Shine:
问题解决,谢谢,感谢你的帮助。
user4669815:
回复 Shine:
请问一下,具体是怎么实现的呢?