有没有什么办法可以防止LM3S811锁死?

soso   2011-5-3 18:21 楼主

坛子有个朋友,刚拿到811就被锁了:https://bbs.eeworld.com.cn/thread-290411-1-1.html  从目前的讨论看,可能只能换芯片了。

 

有没有方法可以预防类似的情况发生呢?

 

刚跟一个朋友闲聊,他提供了一个思路,希望有兴趣的朋友可以做深入研究,一会拉他来跟帖;

 

大家也可以看看有啥好的方式可以避免此类情况发生。

 

 

 

加油!在电子行业默默贡献自己的力量!:)

回复评论 (29)

TI的sample codes里有一个jtag_gpio的范例
利用一个空pin interrupt来作切换,一方面可以埋入这样防锁的机制
一方面也可把jtag的pin脚拿来作gpio使用。

以前也看过网友建议,使mcu在开机时先delay 2秒,
让programmer软体有时间中断程序,不过我们在debug阶段常常会把delay值取消
强迫戴套的方式,也不符合人性。

不晓得各位先进有何其他的想法吗?
点赞  2011-5-3 18:38
可以的,以前用ZLG 1138的时候看到过,但是具体怎么做忘记了!~
QQ:1625345502
点赞  2011-5-3 18:52
这样我都不敢随便玩了
点赞  2011-5-3 19:50
1000以上的芯片可以解锁,以下的芯片就没办法了
点赞  2011-5-3 20:12

回复 楼主 soso 的帖子

对啊 main函数 里面加一段防锁死的代码就可以了  楼下正解!

[ 本帖最后由 missforever 于 2011-5-3 23:39 编辑 ]
点赞  2011-5-3 22:00
试试这个办法呗

//  定义KEY(针对TI_OEM_LM3S811)
#define  KEY_PERIPH             SYSCTL_PERIPH_GPIOB
#define  KEY_PORT               GPIO_PORTB_BASE
#define  KEY_PIN                 GPIO_PIN_5
//  防止JTAG失效
void jtagWait(void)
{
    SysCtlPeriEnable(KEY_PERIPH);           //  使能KEY所在的GPIO端口
    GPIOPinTypeIn(KEY_PORT, KEY_PIN);  //  设置KEY所在管脚为输入

if (GPIOPinRead(KEY_PORT, KEY_PIN) == 0x00)
      //  若复位时按下KEY,则进入
    {
         for (;;);                           //  死循环,以等待JTAG连接
    }
    SysCtlPeriDisable(KEY_PERIPH);  //  禁止KEY所在的GPIO端口
}
点赞  2011-5-3 22:13

引用: 原帖由 hui370 于 2011-5-3 22:13 发表 试试这个办法呗 // 定义KEY(针对TI_OEM_LM3S811) #define KEY_PERIPH SYSCTL_PERIPH_GPIOB #define KEY_PORT GPIO_PORTB_BASE #define KEY_PIN GPIO_PIN_5 ...

 

bingo!

参考周立功:LM3S基本例程.PDF,第4页。

 

我稍作修改了一下,貌似EK-LM3S811中的按键是PC4。

 

// 防止JTAG失效
void jtagWait(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOC); // 使能KEY所在的GPIO端口
GPIOPinTypeIn(GPIO_PORTC_BASE, GPIO_PIN_4); // 设置KEY所在管脚为输入

if (GPIOPinRead(GPIO_PORTC_BASE, GPIO_PIN_4) == 0x00)
// 若复位时按下KEY,则进入
{
while(1);// 死循环,以等待JTAG连接
}
SysCtlPeriDisable(SYSCTL_PERIPH_GPIOC); // 禁止KEY所在的GPIO端口
}

 

LM3S基本例程.PDF (321.77 KB)
(下载次数: 464, 2011-5-3 23:46 上传)

  • JtagWait.jpg
点赞  2011-5-3 23:46
main函数开始,先调用这个函数void jtagWait(void),这样,复位前按下EK-LM3S811板的USER即S2按键,则进入这个死循环,等待Jtag连接,就不会锁死了。
点赞  2011-5-3 23:52
摘周立功:LM3S基本例程.pdf,第6页。
需要当心的是:对于 Sandstorm 家族(即 LM3S100、300、600、800 等) ,一旦JTAG接口因为误将其无防护地配置为 GPIO接口而被锁定,则有可能再也无法恢复。为了防患于未然,我们建议在编写每一个应用程序时都必须要在 main( )函数的开始处插入一段能够预防JTAG失效的代码 (对于Fury和DustDevil家族也推荐这样做)
点赞  2011-5-3 23:56
学习了,幸亏我不是最早尝试的,我要是在家,出问题的一定是我,期待问题兄弟早日解决问题
点赞  2011-5-4 00:35

回复 11楼 鑫海宝贝 的帖子

哈哈 幸亏我也没开始玩 哈哈
点赞  2011-5-4 08:15
大卫李给力啊
点赞  2011-5-4 08:15

这个可以,打开一个周公例程就会明白

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-5-4 08:34

就是利用等待按键,在这期间,JTAG管脚是好用地

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2011-5-4 08:35

引用: 原帖由 常见泽1 于 2011-5-3 19:50 发表 这样我都不敢随便玩了

 

像TOUCH  IPAD 还能刷成砖呢 做啥事都是有风险的 嘿嘿 不过如果按照操作手册做 应该没啥问题

加油!在电子行业默默贡献自己的力量!:)
点赞  2011-5-4 08:57
对于初学者 大家有没有一个一步步怎么做的措施?
这样可以告诉大家怎么操作
加油!在电子行业默默贡献自己的力量!:)
点赞  2011-5-4 08:59

回复 17楼 soso 的帖子

按照david Lee的方法做应该没问题!!
点赞  2011-5-4 09:57
换芯片没那个技术~~~~~~~~~~~~
点赞  2011-5-4 10:49

回复 12楼 常见泽1 的帖子

那个白色透明的是液晶显示吗,为什么能拿下来呢
点赞  2011-5-4 12:32
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复