前言
使用过Stellaris LM3Sxxx系列的芯片的童鞋估计碰到过错误操作导致芯片锁死的情况,这时仿真器识别不了目
标板,也就无法下载程序到目标板,如果不懂如何解锁,确实很头疼,本人就遇到过,说多了都是泪!!!于是
穷尽各种办法,找到了几种解决方案。但这里先说明一下如何使用特定引脚并初始化为GPIO。
如何解锁特定引脚作为GPIO使用?
有时候当默认GPIO引脚数量不够的时候,这时候就要考虑到使用特定功能的引脚。在LM3Sxxx系列芯片中,
有一部分引脚复位后不作为GPIO来使用,而是用作其他功能,而能用作GPIO的几个引脚是:
- PB7(默认为NMI)
- PC0(默认为Jtag的TCK功能)
- PC1(默认为Jtag的TMS)
- PC2(默认为Jtag的TDI)
- PC3(默认为Jtag的TDO)
那么,怎样操作才能让这些引脚作为GPIO使用。其实很简单,只需要配置两个寄存器器即可:GPIOCR,
GPIOLOCK 。
<pre name="code" class="cpp">HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0x4C4F434B;
HWREG(GPIO_PORTB_BASE + GPIO_O_CR) = 0x000000FF;
HWREG()函数能够以字(32位)访问某个寄存器。这样就将PB7作为GPIO使用。如果对Jtag引脚GPIO之后,每次
烧写程序都必须对芯片进行解锁才能重新烧写程序,这就涉及到怎样对目标板解锁,由于我们在开发过程中使用
Jlink仿真器较多,这里讲一下怎样使用Jlink对目标板解锁。
使用Jlink仿真器对lm3sxxx系列芯片解锁
Jlink解锁lm3sxxx系列芯片方法1:
使用一根导线线将芯片Reset引脚与地线相连,连接Jlink之后绿灯亮之后,打开J-link Commander 先输
入命令”r0“(复位),然后再输入命令“unlock lm3sxxx”,接着按"Enter",几秒钟之后,会提示解锁OK。
Jlink解锁lm3sxxx系列芯片方法2:
将lm3s.src(附件在博客底端)放在Jlink安装目录下,例如我的是"C:\SEGGER\JLinkARM_V434",然后打开
windows CMD ,进入到jlink安装目录命令是"cd C:\SEGGER\JLinkARM_V434",运行"jlink lm3s.src",几
秒钟之后,应该就OK啦。然后查看J-link Commander 可以看到如下界面:
然后对目标板重新上电,应该就可以继续给芯片烧写程序了。经本人测试,两种方法都行。
附件链接:lm3s.src