大电流合金电阻捷比信产品与采购服务联系业务人员

LPC2100系列加密ARM芯片原理和程序实现简介

1.加密原理的说明LPC2100系列ARM7微控制器是世界上第一个可加密的ARM芯片。加密的方法是通过用户程序在指定的地址上设置指定的数据。 PHILIPS规定,对于LPC2100芯片(LPC2106 / 2105/2104除外),当片上FLASH地址0x000001FC上的数据为0x87654321时,芯片将被加密。设置加密后,JTAG调试接口无效,ISP功能仅提供ID读取和芯片擦除功能。注意:将带有加密设置的程序下载到芯片的内部闪存中,加密将在下一次系统复位后生效。 2.加密程序的实现为了实现加密设置,用户必须确保将数据0x87654321定义为0x000001FC。首先,我们使用加密设置来分析程序结构。如图1所示,地址0x000000〜0x00000020是异常向量表。如果在向量表中使用了L DR指令跳转,则可以在0x00000020和0x00000040之间定义每个异常服务。报名地址;在异常向量表之后和0x000001FC地址之前,此小空间可用于写入部分初始化代码或FIQ中断处理程序;然后使用NOP指令将其填充到0x000001FC地址,并在该地址处定义数据0x87654321。该程序的其他代码立即跟随。异常向量表部分初始化代码或FIQ中断处理NOP NOP& hellip; DCD 0x87654321用户代码2100加密程序列表1s的文件中代码的实现如加密程序开头所示。该程序首先使用IF伪指令来确定是否已定义EN_CRP全局变量,如果已声明该变量,它将编译清单1(2)〜(8)中的代码以进行加密设置。注意:EN_CRP全局变量可以在汇编器中预定义,也可以在文件的开头用GBLA / GBLL声明。程序列表1(2)用于判断当前代码地址是否已超过0x000001FC,如果超过,则使用伪指令INFO显示错误消息,请参见程序列表1(3)。程序清单1(5)〜(7)用于填充NOP指令,直到为此使用0x000001FC。程序清单1(8)用于在地址0x000001FC处定义数据0x87654321以实现加密设置。 0x00000000 0x00000020 0x000001FC程序列表1 LPC2100加密程序实现代码;异常向量表& hellip; IF& nbsp; EF:EN_CRP(1)& nbsp; ; 0 0 0xIF:信息:信息:0xIF:0xIF:0x000001 .n请在此行之前删除一些源。 (3)ENDIF(4)CrpData WHILE。 & lt; 0x1fc(5)否(6)WEND(7)CrpData1 DCD 0x87654321(8)ENDIF(9)在模板中。可加密目标是使用LPC2100特殊项目模板创建的项目。选择RelInFLASH目标时,将生成一个具有加密设置的程序。拇指可执行映像为UCOSII(对于LPC21XX)项目模板,当选择目标ThumbRelInFLASH,将产生与加密设置的程序。