Maxim表计IC编程
读写。如果加密位在编程前置位,则没有硬件措施解锁,唯一的解锁办法是整片擦除并紧跟一个IC复位。
值得注意的是,加密(SECURE)位是MPU执行一段代码置位的,而不是由编程器置位,代码例程见图1。加密位确保用户程序不被非法窃取,但当IC需要编程/验证或重新编程时,需要几个附加步骤。
图1. 设置加密(SECURE)位的汇编例程
加密过程是:IC上电时,从地址0x0000开始执行程序,前60个MPU时钟周期是preboot周期,在这个周期中,ICE接口是被禁止的,起始代码可以设置加密(SECURE)位,使能flash加密功能。由于加密(SECURE)位只能置位不能清零(只能由硬件复位清零),而且在preboot期间ICE不能进行读写,故外部电路没有办法读写flash。加密(SECURE)位位于片上的特殊功能寄存器(SFR),各IC在数据手册中定义了各自的加密(SECURE)位位置。
ADM51 ICE
在仿真器用户界面,如果IC加密(SECURE)位置1,则显示图2所示界面。用户可以选择整片擦除并复位IC,复位最好的方法是断电后重新上电。对于有电池的情况,电池必须有一个短暂的断开,或发送复位信号强制IC复位。
此时,在仿真器用户界面将显示IC是一个普通的被擦除的空片。
图2. ICE界面提示加密(SECURE)位置位
图3. 丢失E_TCLK时的ICE接口
TFP2
TFP2将发出一个简单的状态信息,表明IC已经加密。
然后,TFP2将继续整片擦除操作,随后进行编程操作,无需用户干预。
如果IC是71M653x,IC的ICE_E信号将出现在编程接口,操作步骤如下:
TFP2擦除整片flash。 TFP2释放ICE_E信号,如果目标IC看门狗定时器处于使能状态,这将导致IC复位。 TFP2开始编程。带有加密(SECURE)位设置目标程序的IC编程
带有加密(SECURE)位设置代码的编程和普通的编程没有什么区别,但要特殊考虑包含设置加密(SECURE)位指令的效验码,因为一旦开始执行代码,将无法访问flash。
ADM51仿真器和TFP2
下列方法用来校验flash存储器:
一旦MPU开始执行代码,将无法访问、验证flash。 通过暂停目标IC的程序运行实现操作验证。 一旦flash校验完成且开始执行程序,将无法做进一步的校验。这个过程对用户透明。
ECK_DIS置位时的IC编程
这种情况产生一个挑战,因为E_TCLK信号是编程接口必不可少的。
ADM51 ICE
仿真器时钟信号丢失时,ADM51(WEMU51)将产生一个界面如图3所示。依据ECK_DIS置位的时机,重复复位目标可能在ECK_DIS置位之前使得ADM51暂停IC运行,ICE用户接口将表现正常,用户有机会擦除整片flash。
TFP2
TFP2可快速响应目标编程器接口,禁止E_TCLK对于TFP2来说不是问题。
IC含有部分或全部代码时的IC编程
对于71M653xIC,片上计算引擎(CE)的程序flash和MCU是共享的,CE使能信号封锁外部设备对flash的存取。CE使能控制位处于IO RAM 0x2000,第4位。
ADM51 ICE
典型的ADM51仿真器(WEMU51)截屏如图4所示,XDATA_1窗口显示了IO RAM 0x1FF0 ~ 0x2137 中的内容。黄色高亮区域对应于实际IO RAM寄存器,地址0x2000中的内容为0xB0。
在擦除或编程目标flash之前,地址0x2000的内容必须是0x00,这将终止CE运行,为目标IC的编程做准备。
TFP2
TFP2自动处理CE,无需用户干预。
图4. ICE用户界面中的IO RAM
准备目标映像文件
ADM51 ICE和TFP2均处理Intel hex格式的映像文件,这种格式也适用于BPM编程器。
Intel hex文件是由一符合Intel hex文件格式的文本所构成的ASCII文本文件。在Intel hex文件中,每一行包含一个hex记录,这些记录是由包含了机器码及常数的16进制数组成。
注意:器件编程要求各行按顺序排列,Maxim提供一个实用程序CHKSUM.EXE来处理Intel hex文件,用于编程。这个实用文件随TFP2一同提供。
记录格式
Intel hex文件由任意数量的16进制记录组成,每个记录包含5个字段,按以下格式排列:
:llaaaatt[dd…]cc
每组字符对应一个字段,每个字母代表一个16进制数字,每个字段至少由两个16进制数字组成--构成一个字节,如下所述:
:是冒号,每个Intel hex记录都由冒号开头。
ll 是数据长度字段,代表记录中的数据字节数(dd)。 aaaa 是地址字段,表示dd的起始地址。 tt 表示记录类型,它可以是以下数值之一:00 – 数据记录
01 – 文件结束记录
02 – 扩展段地址记录
04 – 扩展线性地址记录
dd 是代表一个字节的数据字段,记录中可能包含多个数据字节,数据字节数必须与II字段一致。 cc是校验和字段,代表记录的校验和,校验和是整个记录的16进制数对(构成一个字节)求和计算的模256,用2的补码表示。Intel hex
- 使用数字分压器实现车灯调光应用(03-17)
- 如何为变化的负载阻抗提供恒定功率(05-19)
- Maxim有源辐射限制(AEL)电路(04-21)
- 从多方面改进传统产品的DirectDrive耳机放大器技术(05-21)
- 如何设计符合中国行业标准的手机充电器接口(06-12)
- 利用数字分压器实现车灯调光(01-18)