嵌入式系统的Boot Loader相当于PC机的BIOS,通常我们在移植Boot Loader的时候,往往会陷入无任何软件工具可用的情况,甚至连串口都无法输出任何信息,要追查错误是非常困难的,这时候往往就需要JTAG接口协助我们进行调试了。
JTAG是联合测试工作组的简称,发展于1985年,作为一种简单的电路接口协议,一般用于访问IC内部的子模块,因此也常用于嵌入式系统的调试,目前大部分CPU都支持JTAG接口。
JTAG接口定义了5个引脚:
- TDI (测试数据输入)
- TDO (测试数据输出)
- TCK (测试时钟,一般工作在10-100MHz)
- TMS (测试模式选择)
- TRST (测试复位,可选)
通过TMS信号选择,一个JTAG接口可以串行的访问一块电路板上的所有IC。
由于并口带锁存的特点,我们可以自己做一根JTAG连接线,一头接在PC机的并口,另一头接嵌入式系统的JTAG接口,这样就可以使用PC机通过JTAG接口调试嵌入式系统了。
下面是并口JTAG连接线的参考电路图:
有了连接线,可以使用HJTAG来检测是否正确连接。这里最重要的是确保信号线在软硬件上定义一致,下面是我在HJTAG中使用的信号线定义: