This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
我现在用一个简单的程序,配置引导spi nor启动,程序运行在SL2中,在程序里设置了ddr的初始化配置表,并且将其映射到0x00873500的地址。
烧进去能够启动成功,然后我load symbols 进去查看DDR的寄存器配置(0x21000000~0x21000020),但是寄存器的值是不对的,但是去查看0x00873500中对DDR配置的结构体中的值,却是对的。
不知道是什么原因,为什么RBL引导的时候,为什么对DDR寄存器的值写的是错的呢?下面是我通过转换工具生成的app.dat的烧写文件。烧进去之后是可以启动的,但是ddr的初始化不对。从图上可以看出
ddr的配置表已经被加进去了,但是为什么初始化不对呢?期望您的解答,谢谢。
您好,
这两个帖子都是我发的,意思一致。
目前遇到的情况是:
1、之前DDR寄存器地址DDR的寄存器配置(0x21000000~0x21000020)配置不对,是因为我使用的DDR的configer table 是6657的,前面多了2个Uint32类型的数据,将其改过之后,DDR的寄存器配置(0x21000000~0x21000020)的值已经配对了。
2、但是0x02620330开头的4个寄存器和我用gel初始化的值不一致,导致我现在程序烧进去启动不起来。下面是我的一个DDR的配置。
3、想请问下,DDR的PLL配置就是通过上图的pllPrediv、pllMult、pllPostDiv 这3个值来配置吗?我的DDR参考时钟是66.667MHz。但是现在通过上图的配置,烧进去程序启动不起来(我将程序运行在DDR里),是哪的原因呢?将程序运行在SL2中时是可以启动的。下面是运行在DDR中时的cmd文件配置。
您好,感谢您的回复。
我重新配置了上面的pllPrediv、pllMult、pllPostDiv三个值,分别为0,29,2,程序烧进去可以启动了。
我看之前的一个帖子上说pllMult = Pll_M+1,pllPostDiv = 2*(1+PLL_D),PLL_M和PLL_D为DDR3PLLCTL0中定义值,之前一直搞错了这三个值的含义。