
1.先用仿真器(JTAG/J-link)下载到板子内,下载后,在程序的第一行设置断点,让它停住,能停住,说明仿真器没问题,程序能执行起来了.
2.在检查下PC寄存器的值是否正确.以确定没有跑飞掉,在指定的范围内.
3.检查下CPU内部RAM(或者外部的SDRAM)的内容是否和下载的执行文件(bin,hex,elf等格式)相同.
4.一般在开始处设置的是程序状态寄存器(如ARM的CPSR),执行后观察相应的寄存器值有没有按照预期改变.如,u-boot源码中的start.S文件中开始的语句:
[cpp]viewplaincopy/*
*theactualstartcode
*/
start_code:
/*
*setthecputoSVC32mode,设置状态寄存器,选定工作模式(汇编指令参考相关文档)
*/
mrsr0,cpsr
bicr0,r0,#0x1f/*指定位置1*/
orrr0,r0,#0xd3/*清0指定位*/
msrcpsr,r0
5.继续单步执行,观察PC指针是否跟着改变(除了函数调用,中断或goto语句外,PC值一般都是累加的),再观察程序运行的结果是否正确.
6.其实还有个简单的方法,就是用示波器来观察相应的引脚,当然你得有引脚引出来.通过观察波形也可以判断程序是否正常.不过这方法是有局限的.
如果上述步骤中没有任何问题,基本可以判定程序是运行的,仿真器无问题,CPU工作是正常的,电源模块暂时是正常的工作的.要想判定整体的硬件和程序是否正常工作还需要做进一步的测试.