关于21562 OTP 加密出现几个莫名其妙的问题,已解决。

整体流程

1.修改app.ldf配置文件(不改的话写入的密钥通过adi_rom_otp_get读取不出来,具体问题不清楚)

___ldf_dmcachesize = 0xffffffff;
___ldf_pmcachesize = 0xffffffff;
___ldf_icachesize = 0xffffffff;

2.加密过程,分别写入公钥、私钥、仿真器密码,然后通过adi_rom_otp_get读取出来比对,和写入的密钥是否一致进行验证,最后使用adi_rom_otp_lock()函数锁定处理器,锁定处理器后,要烧写加密的程序才可运行.

注:使用adi_rom_otp_lock前一定要确保自己写入的密钥是正确的,否则芯片会变砖.

因为操作的是OTP,密钥和仿真器密码只能写入一次.公钥和私钥是成对使用的不可以随意修改.

bool LOCK_program(void) {
	if(!program_public_key0()) 		  { printf("failed to program public_key0\n"); return false; }//写入公钥 
	if(!program_pvt_128key0()) 	  	  { printf("failed to program encryption key\n"); return false; }//写入私钥
	if(!program_emu_key())      	  { printf("failed to program the emu key\n"); return false; } //写入仿真器钥匙
	if(!lock_part())                  { printf("failed to lock the part\n"); return false; }//次函数调用后 DSP将会被锁死
	r

你可能感兴趣的:(c语言,单片机,dsp开发)