DSP芯片解密技术中的EEPROM编程算法应用
在进行DSP芯片解密时,深入分析并理解芯片内部结构和算法特征是解密工程师必不可少的一环。只有在对芯片内部结构和加解密特性有充分的认识基础上,才能选择最安全可靠、最合理的解密方案。本文将重点介绍在DSP芯片解密技术中应用EEPROM编程算法的相关内容,以DSPIC30F系列芯片解密为例。
数据EEPROM编程
与程序存储器类似,EEPROM存储块通过读表和写表操作进行访问。由于EEPROM存储器只有16位宽,因此其操作不需要使用TBLWTH和TBLRDH指令。数据EEPROM的编程和擦除步骤与闪存程序存储器类似,但数据EEPROM针对快速数据存取进行了优化。在数据EEPROM上可以执行擦除一个字、擦除一行(16个字)、编程一个字、编程一行(16个字)等操作。数EEPROM具有可读写特性,在进行EEPROM编程或擦除操作时,正常程序执行不会停止。编程软件通过NVMCON和NVMKEY寄存器执行EEPROM擦除和编程操作,并等待操作完成。
EEPROM单字编程算法
1. 擦除一个EEPROM字:
- 设置NVMCON寄存器以擦除一个EEPROM字。
- 将要擦除的字的地址写入TBLPAG和NVMADR寄存器。
- 清零NVMIF状态位并可选地允许NVM中断。
- 将密钥序列写入NVMKEY。
- 将WR位置1,开始擦除周期。
- 查询WR位或等待NVM中断。
2. 将数据字写入数据EEPROM写锁存器。
3. 将数据字编程入EEPROM:
- 设置NVMCON寄存器以编程一个EEPROM字。
- 清零NVMIF状态位并可选地允许NVM中断。
- 将密钥序列写入NVMKEY。
- 将WR位置1,开始编程周期。
- 查询WR位或等待NVM中断。
EEPROM行编程算法
如果需要将多个字编程入EEPROM,每次擦除并编程16个字(1行)会更为高效。以下是向EEPROM编程16个字的步骤:
1. 读取一行数据EEPROM(16个字)并以数据“镜像”方式保存到数据RAM。要修改的EEPROM部分必须处于偶数16字地址边界内。
2. 使用新数据更新数据镜像。
3. 擦除EEPROM行:
- 设置NVMCON寄存器以擦除EEPROM的一行。
- 清零NVMIF状态位并可选地允许NVM中断。
- 将密钥序列写入NVMKEY。
- 将WR位置1,开始擦除周期。
- 查询WR位或等待NVM中断。
4. 将16个数据字写入数据EEPROM写锁存器。
5. 将一行数据编程到数据EEPROM:
- 设置NVMCON寄存器以编程EEPROM的一行。
- 清零NVMIF状态位并可选地允许NVM中断。
- 将密钥序列写入NVMKEY。
- 将WR位置1,开始编程周期。
- 查询WR位或等待NVM中断。
通过以上EEPROM编程算法的应用能够有效地实现DSP芯片解密过程中对数据的编程和擦除操作,提高解密效率与成功率。深入理解EEPROM编程算法对于解密工程师在处理DSP芯片解密过程中具有重要意义。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。