现在,调试LM3S系列单片机一般采用JTAG接口。用户在使用过程中,可能会出现芯片的JTAG接口锁死的问题,即用LM LINK调试器(或其它JTAG调试器)再也无法连接的情况。
一旦JTAG接口被锁死,则芯片一般只有报废处理(可联系我们维修)!!因此,我们在编写程序时千万要引起足够的重视,必须插入预防JTAG失效的代码。
导致芯片JTAG接口被锁死的原因有多种,如与JTAG接口复用的GPIO被占用、程序中存在定时中断(或其它中断)等等,但最常见的原因还是与JTAG接口复用的GPIO被占用,从而导致上电后JTAG调试器来不及与芯片连接。
附件Demo例程是个操作GPIO的简单示例,里面自带防止JTAG失效的代码,请先参考。该程序的工作原理是:将可以预防JTAG锁死的函数WaitJTAG()插入到main()函数的第一个可执行;芯片正常复位情况下,直接运行后面的代码,即WaitJTAG()函数不影响正常的操作;如果需要JTAG连接,则先按住KEY不松手,再复位,则程序进入一个死循环里,以等待JTAG连接。
例程中采用的按键KEY是PA2,配置为: #define KEY_PORT SYSCTL_PERIPH_GPIOA #define KEY_PIN GPIO_PORTA_BASE , GPIO_PIN_2
KEY配置为其它GPIO管脚也可以,例如PD4: #define KEY_PORT SYSCTL_PERIPH_GPIOD #define KEY_PIN GPIO_PORTD_BASE , GPIO_PIN_4
但是,要注意,KEY不可配置为与JTAG接口复用的GPIO上。
硬件电路设计注意事项。附件里还有一份LM3S系列单片机最小系统电路原理图及电路说明,请认真参考。作为预防JTAG失效的按键KEY当然不能接在与JTAG接口复用的GPIO上,程序当中也不能进行错误的配置。
附:与JTAG接口复用的GPIO管脚 ===================== GPIO管脚 JTAG接口 --------------------- PB7 /TRST PC0 TCK PC1 TMS PC2 TDI PC3 TDO =====================
(zlgmcu_wdx) 相关链接:https://bbs.21ic.com/upfiles/img/20083/200831310914115.rar |