烧写flash 芯片(TMS28034),第二次烧写出现 要解锁"Unlock Flash"

2019-07-15 18:26发布

我用CCS3.3 烧写flash 芯片(TMS28034)时 第一次烧写FLASH的时候我没设置过"Code Security Password" 代码系统默认是:FFFF   在烧写成功后 我装上机测试后  再次进入CCS3.3来擦除烧写第二次,但是芯片第二次烧写的时候就出现 要解锁"Unlock Flash"了,我就算输入了8个"FFFF"也无法解锁Flash。请问这个情况怎样解决呢 我全部试过6块芯片 有2块就试过在烧写第3次才出现解锁Flash .
以下是我的默认代码:
.sect "csmpasswds"

      .int        0xFFFF                ;PWL0 (LSW of 128-bit password)
      .int        0xFFFF                ;PWL1
      .int        0xFFFF                ;PWL2      .int        0xFFFF                ;PWL3
      .int        0xFFFF                ;PWL4
      .int        0xFFFF                ;PWL5
      .int        0xFFFF                ;PWL6
      .int        0xFFFF                ;PWL7 (MSW of 128-bit password)
        
;----------------------------------------------------------------------

; For code security operation, all addresses between 0x3F7F80 and
; 0X3f7ff5 cannot be used as program code or data.  These locations
; must be programmed to 0x0000 when the code security password locations
; (PWL) are programmed.  If security is not a concern, then these addresses
; can be used for code or data.  

; The section "csm_rsvd" can be used to program these locations to 0x0000.

        .sect "csm_rsvd"
        .loop (3F7FF5h - 3F7F80h + 1)
              .int 0x0000
        .endloop

;//===========================================================================
;// End of file.
;//===========================================================================


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
杰仔嘻嘻
2019-07-16 08:15
接触dsp已经有一段时间了,从Hellodsp得到了很多帮助,前段时间本人也进行了第一次烧写,幸运的遇到了FLASH锁死的情况,不知该哭该笑,我们系很少人玩DSP,少写过的人不多,遇到锁死的就更少了,没人给解决,只能在网上搜,最终皇天不负有心人,搞定!!废话不多说,下面就分享一下该怎么解锁(部分借用网络资源,在此感谢!!):
根据得到的.out文件,通过hex2000.exe来得到相应的ASCII码文件,文件中
00 08 00 3F 7F F8 EE EE FF FF FF FF FF FF FF FF FF FF FF FF FF FF
为密码区,其中00 08 00 3F 7F F8为密码区地址,后面16组为实际密码,LSB到HSB。
需要:对应的.out 和.map文件,分别用来生成hex文件和查看链接关系。
配置:build.bat 批处理文件,用windows的命令提示符来得到所需要的hex文件,编码为ASCII;用记事本打开 内填写hex2000.exe在你电脑中的目录
          build.cmd 命令文件,采用hex2000.exe程序选项命令来得到所需文件。
          具体命令 :
               -memwidth 16 设定存储器格式为16bit  ,不用管
               -romwidth 16 设定rom格式为16bit&,不用管
               -a           设定输出文件格式,填写你的.OUT名如我的是Tlv320aic23x.out
               -o           设定输出文件名,随便起个名字,是你得到密码的文件名
               -map         设定输出映射文件,填写你的.map名  如我的是Tlv320aic23x.map
               -boot        设定引导数据流,不做操作
hex2000.exe 程序文件, ccs自带的,路径为..C2000cgtoolsinhex2000.exe
更多有关此程序的命令选项请参考相关资料。
具体你要做的是:
1、回帖,下载压缩包并解压
2、把文件夹中的.out和.map文件换成你的文件,
3、按照上面说的修改buildhex.cmd里面的内容,然后将文件夹拷贝到ccs安装目录下(不知道不考行不行,没试)
4、打开ccs连接目标板
5、双击build.bat会产生一个记事本文件,打开找到00 08 00 3F 7F F8即可

00 3F 7F F8  这段数字后的数据为地址003f7ff8中的内容,也即密码区的首字节,根据前面
得到的ascii格式的文本文件,搜索3F 7F数据组合,然后其后的就是实际烧进去的数据。如果是
错误烧写锁定DSP的话,则把后续的指令代码作为密码写进去即可,一般为32bit,程序长跳转二进制代码。
如果是自己烧写了代码,则后续的16组数据即为所设密码。

具体写的是什么,可以参考对应的.map文件,其中列出了所有symble,以及他们的输入输出段,可以看到003f7ff8地址中对应的是那个symble和所占字节数。

我按照上面的这个方法试了但是我双击build.bat会产生一个记事本文件,我就产生不了,还有一个我不明白这个打开CCS  连接目标板  (CCS,我是打开了而且还连接了一颗锁了的芯片)

一周热门 更多>