[ZLG-MCU] ZG,求助啊,犯了一个严重的错误

[复制链接]
1807|2
 楼主| shenjar 发表于 2008-3-11 08:53 | 显示全部楼层 |阅读模式
误把LM3S615的JTAG要用的几个I/O口设置成输出模式了,,,怎么办啊??有什么方法能擦掉下载的程序吗?还是只能重新换芯片了???
zlgmcu 发表于 2008-3-11 10:08 | 显示全部楼层

所以说,预防JTAG失效还是必须的

所以说,在您的源程序里插入预防JTAG失效的代码是非常有必要的,要在main()函数的一开始就要调用预防JTAG失效的代码。下面是个典型的例子,请大家参考:<br /><br />#include&nbsp;&nbsp;&lthw_types.h&gt<br />#include&nbsp;&nbsp;&lthw_memmap.h&gt<br />#include&nbsp;&nbsp;&lthw_sysctl.h&gt<br />#include&nbsp;&nbsp;&lthw_gpio.h&gt<br />#include&nbsp;&nbsp;&ltsysctl.h&gt<br />#include&nbsp;&nbsp;&ltgpio.h&gt<br /><br /><br />#define&nbsp;&nbsp;SysCtlPeriEn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeripheralEnable<br />#define&nbsp;&nbsp;SysCtlPeriDis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeripheralDisable<br />#define&nbsp;&nbsp;GPIOPinTypeIn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeGPIOInput<br />#define&nbsp;&nbsp;GPIOPinTypeOut&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeGPIOOutput<br /><br />#define&nbsp;&nbsp;KEY_PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYSCTL_PERIPH_GPIOA<br />#define&nbsp;&nbsp;KEY_PIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PORTA_BASE&nbsp;,&nbsp;GPIO_PIN_2<br />#define&nbsp;&nbsp;KeyGet()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinRead(KEY_PIN)<br /><br />#define&nbsp;&nbsp;LED_PORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYSCTL_PERIPH_GPIOB<br />#define&nbsp;&nbsp;LED_PIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIO_PORTB_BASE&nbsp;,&nbsp;GPIO_PIN_4<br /><br />#define&nbsp;&nbsp;LedOn()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinWrite(LED_PIN&nbsp;,&nbsp;0&nbsp;&lt&lt&nbsp;4)<br />#define&nbsp;&nbsp;LedOff()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinWrite(LED_PIN&nbsp;,&nbsp;1&nbsp;&lt&lt&nbsp;4)<br /><br /><br />//&nbsp;防止JTAG失效<br />void&nbsp;&nbsp;WaitJTAG(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeriEn(KEY_PORT);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能按键所在的GPIO端口<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeIn(KEY_PIN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置按键所在的管脚为输入<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;KeyGet()&nbsp;&nbsp;==&nbsp;&nbsp;0x00&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;如果有键按下,则进入<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;死循环,以等待JTAG连接<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeriDis(KEY_PORT);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;禁止按键所在的GPIO端口<br />}<br /><br /><br />//&nbsp;延时<br />void&nbsp;&nbsp;TimeDelay(unsigned&nbsp;long&nbsp;&nbsp;ulVal)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(&nbsp;--ulVal&nbsp;&nbsp;!=&nbsp;&nbsp;0&nbsp;);<br />}<br /><br /><br />int&nbsp;&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WaitJTAG();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;防止JTAG失效<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeriEn(LED_PORT);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能LED所在的GPIO端口<br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeOut(LED_PIN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置LED所在管脚为输出<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedOn();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;点亮LED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeDelay(100000UL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LedOff();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;熄灭LED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeDelay(500000UL);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /><br />如果JTAG接口已经被锁定了,则可以试着把LM&nbsp;LINK的通信速率由500K降为50K或更低来试试,如果还是不行就只有返修了。<br /><br />(zlgmcu_wdx)
wkman 发表于 2008-3-14 09:12 | 显示全部楼层

能不能象LPC那样用isp恢复???LM3s好像没有ispcode功能...

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部