补充一下其它情况。
有可能是你生成的LDR有问题。另外需要注意一下:
1. 如果程序大的话,用到了内存,必须在生成ldr文件的时候加个内存的初始化dxe文件
2. dxe文件有两种,一种是32M,一种是64M的,安装文件下的ezkitBF533_initcode.dxe这个是64M的初始化,如果你的硬件是32M内存的,则不能用,这也是一个可能起不来的原因。
附上一个32M内存对应的初始化DXE,供参考。
如果硬件是64M内存,则加载ADI提供的那个,如果是32M的,就加载我上传的这个。
晕,搞错了,生成的是bin文件,不是hex文件。上面传的图不算,看这张。
我觉得应该在生成ldr文件这地方出问题了,建议你写个简单的程序烧到flash里面去测试看看,比如简单的点灯或者对IO进行操作,看烧进去能不能起来,按照3楼那个图配置,红框里不加载dxe文件
测量上电瞬间,ARE上有没有波形信号,就可以判断处理器是否BOOT启动。
通常代码起不来是LDR 生成的有问题,建议生成Bin文件,加载initcode文件。
flash是否以16Bit方式设计
因为手上有bf533开发板,下载的都是相同的ldr。ldr下载到开发板上是可以运行的,到自己的板子上不行。
上电后,对于16bit的ldr文件应该在地址0x00上读到0x60,表示这是一个16bit 的ldr,读这个数据就有问题。
JTAG模式下flash读写都完全正常
后来对flash两个未用悬空脚上拉后,突然加载正常了。将这两个脚去掉上拉后,依然能正常加载。很奇怪。
初步估计原因是在flash加焊导线时,顺便将周围的脚都用锡刷了下,然后就正常了。
谢谢大家解答