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.
ti专家您好:
我最近做c6678的emif-nor-boot引导,折腾了好长时间了,遇到些很棘手的问题,希望能解答一下,谢谢!
我先说环境:硬件:自己的板子,nor型号:S29GL01GS11DHIV1;软件:CCS5.4
先说下我的emif-nor-boot的思路。先做好norwrite烧写工具,有了工具就可以烧写最后合成的xxx.bin镜像了。norwrite验证了。可以烧写到nor中去;问题出现引导后从norflash中搬移,及用ti交叉工具合成的过程中。
在noboot模式下,镜像下载进去了(镜像是一个led闪灯程序),在memory窗口,ox70000000地址空间看到数据,接着断电,上电,又去看0x70000000空间数据,跟之数一样。这些天下来, 遇到如下问题:望各位专家能指导下。
1.搬用和合成参考论坛帖子:www.deyisupport.com/.../13433.aspx
当下载完后,我设置emif-nor-boot引导,上电,连接仿真器后,PC指正指向0x7xxxxxxx,处,我用memory观察,发现这段地址空间全为0x0,我是想问我这样观察方法对不?,我只想知道norflash中还有数嘛,如果对的,为啥没有数据。
2.我emif-nor-boot 管脚设置BOOTMODE[12:0]为:'0b' 0010010000;是否正确,我查看了DEVSTAT,值是一样的,BOOTCOMPLETE寄存器,core0 位是1,那是否说明我的管脚设置没问题。boot是从norflash启动,而且都已经完成。
3.emif-nor-boot引导, 上电后RBL是否对EMIF接口初始化,初始化完后是直接调至0x70000000地址出的吗??我也研究了RBL的源码,确实初始化了,至于跳到 0x70000000处,我没发现;我想确定下。
4.我看论坛好多,在自己的工程中有boot.asm,文件,及大量的修改了cmd文件。我知道boot.asm是从nor中搬移程序到RAM中,然后PC指向_c_int00处,我想知道我的到底有没有搬移成功,我如何调试这段汇编?
都折腾好长时间了,没有思路了,希望专家或者做过的大牛给点建议和思路。
请检查 :boot parameter table for the EMIF16 boot mode.,这个配置是否正确
EMIF16 boot起来后,RBL代码实现比较简单,会根据boot parameter table去初始化EMIF16接口,并没有做太多事,如果BOOT Parameter table配置不对的话,那么EMIF16接口不正常,就会出现如上1)中,0X70000000空间数据不可读的情况。
特别感谢您
我按照您的指导,检查了boot parameter table for the EMIF16 boot mode 参数表,应该没问题,修改后任然在ox70000000地址空间全为0x0,我做了如下检查和修改。
1.上电后,连接仿真器,查看Boot parameter table表项处值(0x00873680),如下截图
<1>检查了Boot Mode项,为0x46 -> 70 ,说明确实是emif boot引导的。
<2>检查了Wait Enable项, 为0x1, 说明设置的就时0x1
<3>查看了DEVSTAT寄存器中BOOTMODE[12;0]值: 为‘0b’ 100 00 1 0 01 0 000 值也没错啊 ,BOOTMODE[12:10]=100 ,因为我输入System PLL的参考时钟为156.25MHZ,查手册中表,配置100;这点是今天发现的。 然后就修改了FPGA端程序。但是上电后,任然在0x70000000处没有数据。不知道为什么??