PAGE1
PAGE1
21.调试与编程接口
21.1JTAG接口
JTAG(JointTestActionGroup)接口是一种标准接口,用于测试和调试嵌入式系统中的硬件。在TM4C129x系列单片机中,JTAG接口不仅用于硬件测试,还用于代码调试和编程。JTAG接口通过一组引脚与外部调试工具(如JTAG调试器)连接,提供对单片机内部寄存器和存储器的访问能力。
21.1.1JTAG引脚配置
TM4C129x系列单片机的JTAG接口通常包括以下引脚:
TCK(TestClock):测试时钟信号。
TMS(TestModeSelect):测试模式选择信号。
TDI(TestDataIn):测试数据输入信号。
TDO(TestDataOut):测试数据输出信号。
TRST(TestReset):测试复位信号。
这些引脚的配置和使用如下:
//配置JTAG引脚
voidconfigure_JTAG_pins(void){
//使能GPIO端口
SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R1;//使能GPIOPortB
while((SYSCTL_PRGPIO_RSYSCTL_PRGPIO_R1)==0){
//等待GPIO端口准备就绪
}
//配置JTAG引脚为输入模式
GPIO_PORTB_DIR_R=~(GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIO_PORTB_DEN_R|=(GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
//设置JTAG引脚的复位和时钟
GPIO_PORTB_PUR_R|=(GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIO_PORTB_LOCK_R=GPIO_LOCK_KEY;
GPIO_PORTB_CR_R|=(GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIO_PORTB_AFSEL_R|=(GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
GPIO_PORTB_PCTL_R=(GPIO_PORTB_PCTL_R~0|(GPIO_PCTL_PB3_JTAGTCK|GPIO_PCTL_PB4_JTAGTMS|GPIO_PCTL_PB5_JTAGTDI|GPIO_PCTL_PB6_JTAGTDO|GPIO_PCTL_PB7_JTAGTRST);
//使能JTAG接口
SYSCTL_JTAGCC_R|=SYSCTL_JTAGCC_JTGEN;
}
21.1.2JTAG调试器连接
将JTAG调试器连接到TM4C129x单片机时,需要确保以下步骤:
硬件连接:将JTAG调试器的TCK、TMS、TDI、TDO和TRST引脚分别连接到单片机对应的引脚。
电源连接:确保调试器和单片机的电源电压匹配。
软件配置:在调试软件中选择合适的JTAG配置参数,如时钟频率、边界扫描链长度等。
21.2SWD接口
SWD(SerialWireDebug)接口是一种较新的调试接口,相比JTAG接口,SWD接口使用较少的引脚,但提供了类似的调试功能。在TM4C129x系列单片机中,SWD接口通过两个引脚实现:SWDCLK和SWDIO。
21.2.1SWD引脚配置
TM4C129x系列单片机的SWD引脚配置如下:
SWDCLK:串行调试时钟信号。
SWDIO:串行调试数据输入/输出信号。
配置SWD引脚的代码示例如下:
//配置SWD引脚
voidconfigure_SWD_pins(void){
//使能GPIO端口
SYSCTL_RCGCGPIO_R|=SYSCTL_RCGCGPIO_R1;//使能GPIOPortB
while((SYSCTL_PRGP