我用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 opera
tion, 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.
;//===========================================================================
根据得到的.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,我是打开了而且还连接了一颗锁了的芯片)
一周热门 更多>