MDK 如何 加密ARM
原创
©著作权归作者所有:来自51CTO博客作者magic_180的原创作品,请联系作者获取转载授权,否则将追究法律责任
用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了...
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mdk not in scope
mdk中,无法查看变量 not in scope
not in scope -
MDK裸奔STL
MDK裸奔STL
C++ 管理 休闲 C MDK -
Keil MDK详细讲解
熟悉Keil C 51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的。但ARM内核毕竟不同
keil详细说明 keil详解 Keil MDK 选项卡