最后,总结一下,遇到锁死在0xFFFFFFFE时,可能的原因和排查办法:
1. 目标板没有上电,仅靠调试器管脚上的一点电流在运行。这种情况下可能电流不够,导致下载运行的程序根本就不对; 建议:给目标板接上外接电源。
2. Keil太聪明,它认为你的板子应该有程序,所以不下载程序到班子,但是实际上板子可能是空白flash。 例如:先用Keil下载并调试板子A;然后换上板子B,直接点Keil的“调试”。这时候Keil以为连接的还是板子A, 所以它并不再次下载。 建议:每次调试之前,按F7重新link一下程序,Keil就保证会再次下载了。
3. Keil Project设定为:Debugger时不要下载程序。那板子上可能就没程序了。 建议:打开对话框:Project->Options->Utilities->Update Target before Debugging,确信这一项有打上勾。
4. Nu-Link驱动中选择的“Chip Type”和目标板不匹配,运行的结果不可预料。 建议: 对于Keil, 打开对话框:Project->Options->Debug->Nu-Link Debugger->Settings,确信Chip Type没有和目标板一致。 对于IAR, 打开对话框:Project->Options->General Options->Target->Device,确信Device类型和目标板一致。 (Nu-Link 4117rc之后版本的Nu-Link, 会检测芯片类型,报告不一致的情况)。
5. Nu-Link/Keil关于flash utility的设定,没有选择擦除。 Flash写之前需要擦除的,然而为了客户特殊需要以及和Ulink界面的一致,Nu-Link仍旧允许写之前不擦除。 建议:写之前不擦除,用户会受到警告,请留意警告信息。 如需修改此设定,可打开对话框:Project->Options->Utilities->Nu-Link Debugger->Settings->Download functions处修改。
6. 程序的确是写错了; 建议:没有建议了^_^
|