最近一个样板在给芯片下载程序时出现问题,
首先想到的是硬件的原因,
其次是下载过程的原因,
最后是芯片本身的原因(芯片可能被锁了)。
首先使用同事M那里的工具进行下载,发现下载出现异常。提示Fail to get CPU status after retries。
新板子最容易出现的是焊接问题,于是请硬件工程师将芯片重新修复。之后,下载发现现象依然。
硬件工程师提示,由于芯片如果被锁,也不会正常获取CPU状态,而且现象很像。(这个后来使用同事M那里以前被锁的芯片进行下载,下载提示一致。以至于后来有一段时间,认为是芯片被锁了。)于是尝试了使用串口下载,如果芯片被锁是Jtag功能被锁,但是串口下载功能还是可以进行。但是尝试了一段时间后发现,串口无法获取到CPU型号。也即,无法进行串口下载。
后来:
于是想办法进行CPU解锁,尝试了一段时间后,发现如果没有相应底板,无法进行解锁。
在最后,没有其他方式的情况下,为了方便一块硬件板子的下载,自己给板子焊上了两跟线,进行外部供电。为了电源稳定,在板子上连接外部电源和地的地方并接了两个电容。之后进行下载测试,发现可以进行下载。而另一块板子,本来就使用了相同的连接方式,只是没有并接电容。
于是怀疑是没有并接电容,导致电源不稳定,出现了无法下载的情况。
之后,将另一块板子,重新尝试下载,发现依旧不能够进行下载。然后,在连接线处并接电容,再次下载时,发现下载正常。
至此,裸板下载问题,解决。
本质原因是电源不稳定。
建议,以后裸板测试时,先测试电源稳定性。同时,裸板尽量保证,电源系统的完整。