DSP芯片解密技術(shù)中的EEPROM編程算法應(yīng)用
在進(jìn)行DSP芯片解密時,深入分析并理解芯片內(nèi)部結(jié)構(gòu)和算法特征是解密工程師必不可少的一環(huán)。只有在對芯片內(nèi)部結(jié)構(gòu)和加解密特性有充分的認(rèn)識基礎(chǔ)上,才能選擇最安全可靠、最合理的解密方案。本文將重點介紹在DSP
在進(jìn)行DSP芯片解密時,深入分析并理解芯片內(nèi)部結(jié)構(gòu)和算法特征是解密工程師必不可少的一環(huán)。只有在對芯片內(nèi)部結(jié)構(gòu)和加解密特性有充分的認(rèn)識基礎(chǔ)上,才能選擇最安全可靠、最合理的解密方案。本文將重點介紹在DSP芯片解密技術(shù)中應(yīng)用EEPROM編程算法的相關(guān)內(nèi)容,以DSPIC30F系列芯片解密為例。
數(shù)據(jù)EEPROM編程
與程序存儲器類似,EEPROM存儲塊通過讀表和寫表操作進(jìn)行訪問。由于EEPROM存儲器只有16位寬,因此其操作不需要使用TBLWTH和TBLRDH指令。數(shù)據(jù)EEPROM的編程和擦除步驟與閃存程序存儲器類似,但數(shù)據(jù)EEPROM針對快速數(shù)據(jù)存取進(jìn)行了優(yōu)化。在數(shù)據(jù)EEPROM上可以執(zhí)行擦除一個字、擦除一行(16個字)、編程一個字、編程一行(16個字)等操作。數(shù)EEPROM具有可讀寫特性,在進(jìn)行EEPROM編程或擦除操作時,正常程序執(zhí)行不會停止。編程軟件通過NVMCON和NVMKEY寄存器執(zhí)行EEPROM擦除和編程操作,并等待操作完成。
EEPROM單字編程算法
1. 擦除一個EEPROM字:
- 設(shè)置NVMCON寄存器以擦除一個EEPROM字。
- 將要擦除的字的地址寫入TBLPAG和NVMADR寄存器。
- 清零NVMIF狀態(tài)位并可選地允許NVM中斷。
- 將密鑰序列寫入NVMKEY。
- 將WR位置1,開始擦除周期。
- 查詢WR位或等待NVM中斷。
2. 將數(shù)據(jù)字寫入數(shù)據(jù)EEPROM寫鎖存器。
3. 將數(shù)據(jù)字編程入EEPROM:
- 設(shè)置NVMCON寄存器以編程一個EEPROM字。
- 清零NVMIF狀態(tài)位并可選地允許NVM中斷。
- 將密鑰序列寫入NVMKEY。
- 將WR位置1,開始編程周期。
- 查詢WR位或等待NVM中斷。
EEPROM行編程算法
如果需要將多個字編程入EEPROM,每次擦除并編程16個字(1行)會更為高效。以下是向EEPROM編程16個字的步驟:
1. 讀取一行數(shù)據(jù)EEPROM(16個字)并以數(shù)據(jù)“鏡像”方式保存到數(shù)據(jù)RAM。要修改的EEPROM部分必須處于偶數(shù)16字地址邊界內(nèi)。
2. 使用新數(shù)據(jù)更新數(shù)據(jù)鏡像。
3. 擦除EEPROM行:
- 設(shè)置NVMCON寄存器以擦除EEPROM的一行。
- 清零NVMIF狀態(tài)位并可選地允許NVM中斷。
- 將密鑰序列寫入NVMKEY。
- 將WR位置1,開始擦除周期。
- 查詢WR位或等待NVM中斷。
4. 將16個數(shù)據(jù)字寫入數(shù)據(jù)EEPROM寫鎖存器。
5. 將一行數(shù)據(jù)編程到數(shù)據(jù)EEPROM:
- 設(shè)置NVMCON寄存器以編程EEPROM的一行。
- 清零NVMIF狀態(tài)位并可選地允許NVM中斷。
- 將密鑰序列寫入NVMKEY。
- 將WR位置1,開始編程周期。
- 查詢WR位或等待NVM中斷。
通過以上EEPROM編程算法的應(yīng)用能夠有效地實現(xiàn)DSP芯片解密過程中對數(shù)據(jù)的編程和擦除操作,提高解密效率與成功率。深入理解EEPROM編程算法對于解密工程師在處理DSP芯片解密過程中具有重要意義。