hlx3012 发表于 2012-2-15 09:47

关于C2000芯片的FLASH锁死----以及解决办法

<div class='showpostmsg'><P>FLASH锁死了这是为什么,有没有办法解锁。为什么会有类似下面这几种报错:</P>
<P>Read status value 0x0001 from symbol PRG_status(24x系列)</P>
<P>ADC Calibration not complete, check if device is unlocked and recalibrate.(2833x系列)</P>
<P>&nbsp;</P>
<P>答:FLASH锁死是由于在FLASH中的密码部分写入了密码。如果在烧写的的过程中,受到干扰就有机会导致FLASH锁死,如果试了下面的方法,仍旧没有办法解锁,那么没只能够更换芯片。</P>
<P>在C2000烧写过程中(clear)--&gt;erase--&gt;(depletion)--&gt;program--&gt;verify。如果在Erase的时候,芯片因为强行断电,供电不稳定导致类似于强行断电的情况,时钟不稳定,那么FLASH中的密码段有可能成为随机值或全0。</P>
<P>1、确认一下是不是有程序放在FLASH的密码区(查看芯片的datasheet,比如2833x在0x33FFF8~0x33FFFF),如果是那么想办法得到.out中这里的数据,这就是密码、</P>
<P>2、断电,上电,用CCS--&gt;memory看看FLASH区是不是全0,用GEL功能中的Code Security Module--&gt;Unlock_CSM试试能不能解锁。</P>
<P>&nbsp;</P></div><script>                                var loginstr = '<div class="locked">查看精华帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                               
                                if(parseInt(discuz_uid)==0){
                                                                                        (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                }
</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

hlx3012 发表于 2012-2-15 09:48

<P>关于上帖谈到的解锁方法的第一种解锁方法,下面是详述:</P>
<P>(本帖的引用地址:<A href="http://www.hellodsp.com/bbs/forum.php?mod=viewthread&amp;tid=48620&amp;extra=&amp;page=1">http://www.hellodsp.com/bbs/forum.php?mod=viewthread&amp;tid=48620&amp;extra=&amp;page=1</A>)</P>
<P>&nbsp;</P>
<P>&nbsp;</P>
<P><FONT face=Tahoma size=2>接触dsp已经有一段时间了,从Hellodsp得到了很多帮助<FONT color=black>,前段时间本人也进行了第一次烧写,幸运的遇到了FLASH锁死的情况,不知该哭该笑,我们系很少人玩DSP,少写过的人不多,遇到锁死的就更少了,没人给解决,只能在网上搜,最终皇天不负有心人,搞定!!废话不多说,下面就分享一下该怎么解锁(部分借用网络资源,在此感谢!!):</FONT><BR><FONT color=black>根据得到的.out文件,通过hex2000.exe来得到相应的ASCII码文件,文件中</FONT><BR><FONT color=black>00 08 00 3F 7F F8 EE EE FF FF FF FF FF FF FF FF FF FF FF FF FF FF</FONT><BR><FONT color=black>为密码区,其中00 08 00 3F 7F F8为密码区地址,后面16组为实际密码,LSB到HSB。</FONT><BR></FONT><FONT face=Tahoma color=purple><FONT size=3>需要:对应的.out 和.map文件,分别用来生成hex文件和查看链接关系。<BR>配置:build.bat 批处理文件,用windows的命令提示符来得到所需要的hex文件,编码为ASCII;用记事本打开 内填写hex2000.exe在你电脑中的目录<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; build.cmd 命令文件,采用hex2000.exe程序选项命令来得到所需文件。<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 具体命令 :<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-memwidth 16 设定存储器格式为16bit&nbsp;&nbsp;,不用管<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-romwidth 16 设定rom格式为16bit&amp;</FONT></FONT><FONT size=3><FONT color=purple><FONT face=Tahoma>,不用管</FONT></FONT></FONT><FONT size=3><FONT color=purple><BR></FONT></FONT><FONT size=3><FONT color=purple><FONT face=Tahoma>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-a&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;设定输出文件格式,</FONT></FONT></FONT><FONT size=3><FONT color=purple><FONT face=Tahoma>填写你的.OUT名如我的是Tlv320aic23x.out <BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-o&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;设定输出文件名,随便起个名字,是你得到密码的文件名<BR>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-map&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;设定输出映射文件</FONT></FONT></FONT><FONT size=3><FONT color=purple><FONT face=Tahoma>,填写你的.map名&nbsp;&nbsp;如我的是Tlv320aic23x.map</FONT></FONT></FONT><FONT size=3><FONT color=purple><BR></FONT></FONT><FONT size=3><FONT color=purple><FONT face=Tahoma>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;-boot&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;设定引导数据流,不做操作</FONT></FONT></FONT><FONT size=2><FONT face=Tahoma><BR>hex2000.exe 程序文件, ccs自带的,路径为..\C2000\cgtools\bin\hex2000.exe<BR></FONT></FONT><FONT size=2><FONT face=Tahoma>更多有关此程序的命令选项请参考相关资料。<BR><FONT size=5><FONT color=red>具体你要做的是:</FONT><BR><FONT color=red>1、回帖,下载压缩包并解压</FONT><BR><FONT color=red>2、把文件夹中的.out和.map文件换成你的文件,</FONT><BR><FONT color=red>3、按照上面说的修改</FONT></FONT></FONT></FONT><FONT size=5><FONT color=red><FONT face=Tahoma>buildhex.cmd里面的内容,然后将文件夹拷贝到ccs安装目录下(不知道不考行不行,没试)</FONT></FONT></FONT><FONT size=5><FONT color=red><FONT face=Tahoma><BR>4、打开ccs连接目标板 <BR>5、双击</FONT></FONT></FONT><FONT size=5><FONT color=red><FONT face=Tahoma>build.bat</FONT></FONT></FONT><FONT size=5><FONT color=red><FONT face=Tahoma>会产生一个记事本文件,打开找到</FONT></FONT></FONT><FONT size=5><FONT color=red><FONT face=Tahoma>00 08 00 3F 7F F8即可</FONT></FONT></FONT><BR><FONT size=2><FONT face=Tahoma><BR>00 3F 7F F8&nbsp;&nbsp;这段数字后的数据为地址003f7ff8中的内容,也即密码区的首字节,根据前面<BR>得到的ascii格式的文本文件,搜索3F 7F数据组合,然后其后的就是实际烧进去的数据。如果是<BR>错误烧写锁定DSP的话,则把后续的指令代码作为密码写进去即可,一般为32bit,程序长跳转二进制代码。<BR>如果是自己烧写了代码,则后续的16组数据即为所设密码。<BR><BR>具体写的是什么,可以参考对应的.map文件,其中列出了所有symble,以及他们的输入输出段,可以看到003f7ff8地址中对应的是那个symble和所占字节数。</FONT></FONT></P>

常见泽1 发表于 2012-2-15 10:02

楼主 请问下 C2000很容易误操作锁死么 谢谢啦

hlx3012 发表于 2012-2-15 11:04

我正好用过这几代C2000芯片。

在2407 2812上非常容易,因为他们TI没有放power-on-reset (POR) and brown-out-reset (BOR),提供的供电不稳定的时候很容易导致烧写过程中断,然后就锁死.

在280X 2833X上还行,估计是有改进,但还没有增加BOR POR

在最新的芯片上,开始少见,有POR BOR。一般锁死是由于上面谈到的第一条误操作导致

weldking 发表于 2012-2-17 20:55

:) :) :)

安_然 发表于 2012-2-18 12:50

我之前也有遇到过被锁死的现象,只能重新换芯片,也尝试了楼主所说的办法。

hlx3012 发表于 2012-2-18 15:27

帖子里面谈到的方法,其实主要是针对误把FLASH密码段当做程序段使用后的补救方法。

如果是烧写(或者更明确的说就是erase吧)中途断电或者中途卡断,又或其他的原因导致烧写过程不成功,导致芯片的密码区变为全0(默认锁死),或者有些0有些1;那么没有任何办法,只能换芯片。

安_然 发表于 2012-2-18 16:33

回复 7楼 hlx3012 的帖子

当时初步判断的原因是电源电压不稳所导致的

zpfst 发表于 2012-3-22 15:00

<P>我的也被锁了,顶起,希望有用</P>

速冻小猪 发表于 2012-4-22 12:47

遇到这个问题了,来学习一下。

siguochuanshuo 发表于 2012-5-5 09:49

谢谢楼主,万分感谢,再次拜受。

oliveriee 发表于 2012-5-19 23:38

谢谢

希望能解决<br>

oliveriee 发表于 2012-5-19 23:41

回复 沙发 hlx3012 的帖子

真好

forstrongman 发表于 2012-5-20 10:09

回复 沙发 hlx3012 的帖子

rere

hunanliwang 发表于 2012-5-25 14:10

希望非常有用啊,谢谢,现在试试

:)&nbsp;希望会哟哟用!

hunanliwang 发表于 2012-5-25 14:12

回复 沙发 hlx3012 的帖子

非常谢谢,希望会有用!

elvischenq 发表于 2012-6-8 11:47

学习中,谢谢

liyuyao001 发表于 2012-7-10 12:20

新的芯片就被锁了…………

liyuyao001 发表于 2012-7-10 12:48

不知道怎么办,现在很多新片子都烧不进去。也不能用这个方法一片一片的弄吧,况且……没有.out文件

安_然 发表于 2012-7-10 13:04

你不会买到假货了吧。一个芯片可是价格不菲啊
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 关于C2000芯片的FLASH锁死----以及解决办法