摘要:
分别在KEIL和IAR环境下介绍LPC2478加密和解除加密的方法。
介绍:
本文提到的软件:
IAR,RVMDK,FlashMagic v5.86.2274
一、先说说如何进行加密:在LPC2478 FLASH的0x1FC地址处 写 0x87654321即可实现加密;加密后,JTAG被禁用,FLASH不可读。
1、KEIL下:
const unsigned crp __attribute__((section(".ARM.__at_0x1FC"))) = 0x87654321; //加密操作
2、IAR下:
在汇编代码里加入
;加密设置,添加下面这段代码,并在分散加载文件中添加 place at address mem:0x1FC { section .encrypt };
encrypt
SECTION .encrypt:CODE:ROOT
DC32 0x87654321
在分散加载文件ICF里加入
//加密设置
place at address mem:0x1FC { section .encrypt };
二、解除加密
加密后,JTAG变为无效,再无法通过JTAG下载和擦除程序。如果要修改程序,必须要启动内部的bootloader才行。
将EINT0拉低,再复位重启,则可运行内部bootloader,连接串口0至PC机,打开Flash Magic,点击擦除按钮,擦除整片FLASH,即可清除保护位。
此时需要重启电源,JTAG才能被打开,复位都不行,必须要电源重启。
然后就可以通过JTAG下载和调试新的程序了。
结语:
程序开发完成后,要对其进行保护,避免抄袭,加密那是必须滴。