S32K144 怎么关闭 jtag接口
时间: 2023-12-05 10:04:38 浏览: 243
在S32K144芯片中,关闭JTAG接口需要通过改变相应的寄存器配置来实现。具体步骤如下:
1. 首先需要打开MCR寄存器的SWDE位,以使能软件调试接口。
2. 然后需要将相应的复用引脚配置为SWD模式,这可以通过PORT模块的PCR寄存器来完成。
3. 最后,需要将MCR寄存器的JTAG位清零,以禁用JTAG接口。
以下是示例代码:
```
void disableJtag(void)
{
// Disable JTAG interface
// Enable software debug interface
SIM->SCGC7 |= SIM_SCGC7_DMA_MASK;
SIM->SDID |= SIM_SDID_REVID(0x1);
if (((SIM->SDID >> 12u) & 0x7u) == 0x02u)
{
/* S32K14x */
PORTA->PCR[3] = (PORT_PCR_MUX(7) | PORT_PCR_DSE_MASK); /* PORTA3 as SWD_DIO */
PORTA->PCR[2] = (PORT_PCR_MUX(7) | PORT_PCR_DSE_MASK); /* PORTA2 as SWD_CLK */
MCM->CR &= ~MCM_CR_DFCDA_MASK;
MCM->CR |= MCM_CR_DFCIC_MASK;
}
else
{
/* S32K11x */
PORTA->PCR[0] = (PORT_PCR_MUX(7) | PORT_PCR_DSE_MASK); /* PORTA0 as SWD_DIO */
PORTA->PCR[1] = (PORT_PCR_MUX(7) | PORT_PCR_DSE_MASK); /* PORTA1 as SWD_CLK */
}
// Clear JTAGEN bit
MCM->CR &= ~MCM_CR_JTAGEN_MASK;
}
```
其中,MCM_CR寄存器是MCM模块的控制寄存器,SDID寄存器是系统设备ID寄存器,PCR寄存器是PORT模块的复用控制寄存器。在代码中,通过判断SDID寄存器的值,来确定芯片型号,从而选择相应的引脚配置。最后,通过改变MCM_CR寄存器的JTAGEN位来禁用JTAG接口。
需要注意的是,关闭JTAG接口会影响芯片的调试和编程,因此在实际应用中需要慎重考虑。
阅读全文