MDK 如何 加密ARM

用keil编写的程序是没有加密功能的,而用ADS编写则可以选择加密(RelInflash)
 
不加密(DebugInflash/DebugInram)。虽然ADS功能很强大,但很多开发者可能更喜
 
欢用keil来开发的,一是keil支持扩展了的C语言,即keil C,应该说编写程序比在
 
ADS中用标准C来得灵活、简便;二是51的开发均为keil,便于从51单片机向ARM的
 
过渡。然而,很多商用的领域上,需要保护自己的知识产权,均要求程序具有加
 
密功能。能不能在keil中实现加密呢?
 
     一开始走了一条弯路:将keil程序转为标准C然后在ADS中编译实现加密。这种
 
法虽然理论上行得通,但实际做起来工程量很大,keil中对ARM芯片一般只需要
 
一个启动加载文件(startup.s),而ADS中有多个,差别蛮大。
 
       后来发现,加密的机理其实很简单:对Philips的Lpc系列ARM芯片,加密就是向
 
Flash地址单元0x1FC(用户Flash扇区0)写入0x87654321来使能!因此,只要在keil
 
中程序中在中断向量表后面一直用nop;填充到0x1FC,再在该单元写入
 
0x87654321。OK了...

你可能感兴趣的:(嵌入式)