深圳市伟博创科技有限公司
深圳市伟博创科技有限公司
首页  有关伟博创  产品信息  行业动态  技术文章  人才招聘  联系我们  解决方案 
主要产品系列
LOGO--NXP恩智浦半导体
  • Microcontrollers
    • MCU
    • Cortex
    • ARM7
    • 80C51
  • Logic
  • RFID
  • Automotive
Exar半导体芯片--串行收发器
  • 串行收发器
TI(德州仪器)半导体
  • Chipcom
補丁科技
  • Specialty DRAM
开发工具
PDA开发
解决方案
产品展示
NXP LPC1768开发板
LPC1768开发板
TYPE A、TYPE B、“二代证”读卡模块--PDA
二代证读卡模块
H-JTAG开发套件
H-JTAG开发套件

使用LPC1700的代码读保护

概述

代码读保护是一种机制,使用户能够在不同层次的系统安全性保护他们的软件代码和硬件

LPC1700器件有三种不同的安全级别:CRP1,CRP2和CRP3。每个模式增加了安全级别,并限制任何设备访问CRP3。在这个应用笔记我们研究所有这些安全级别,以及如何使用它们。我们也提供一个例子来检验这些模式的。

会用到Keil的MCB1700评估板的Keil uVision3和 Flash Magic

注意:虽然本应用笔记的例子经过详细的测试,但是仍然强烈建议初步配置器件的安全级别低于CRP3。一旦代码被成功地保护于CRP3,将不能更改。

Flash 存取方法

一般来说,LPC1700闪存有两种不同的方式访问:

  • 使用JTAG编程接口:这种方法可以用Debug工具下载代码到器件并可以停止运行器件。
  • 使用在系统编程(ISP):这种方法是通过引导加载器实现,使用UART0串行端口。

理解 CRP安全级别

顾名思义,代码读保护(CRP)为用户提供一个方法保护自己的代码不被从Flash被读取。这样,设计人员阻止未经授权的用户获得目标代码下载到另一个硬件平台。这种情况可以使用CRP1(代码阅读保护 - 等级1),如果使用CRP2和CRP3,JTAG访问将被阻止,所以JTAG没有办法读/擦除/写入闪存,ISP也无法读取Flash内容,只有Flash的更新可以执行。

为进一步的提高安全等级,防止未经授权的用户更改代码,例如使用ISP,或者部分更新Flash或者破解。可以使用CRP2,这种情况允许通过ISP 更新部分Flash,但是这种方式不允许通过未经授权的用该修改现有代码,因为没有办法修改Flash,除非首先删除所有Flash的内容,这样现有代码也将被丢失。

更高的安全级别是,在你的硬件上下载他自己的代码,这就是硬件保护,能阻止其他人重复使用硬件,在这种情况下,可以防止用户拉低P2.1脚进入ISP模式,这样未授权的用户不用通过ISP访问Flash,这种方式提供了最高层的保护。需要注意的是一旦使用了CRP3就没有办法更新Flash了,但是内部的用户代码可以调用ISP命令(即IAP),调用引导加载程序进入ISP模式。当我们在调用ISP命令,这时候会打开CRP3的保护,这意味着会降级我们的保护到CRP2,在这个保护级别我们依然无法读取Flash的内容,但是可以下载新的代码。所以当你使用CRP3的保护时,建议用户代码应该留一些这样的“后门”,为了打破CRP3的保护。

 全文下载 

 源代码   

声明:本站部分内容根据互联网资料整理而成,若侵犯您的权益,请联系我们,我们会尽快处理。

深圳市伟博创科技有限公司
管理员 | 首页 | 产品 |   联系我们
© 2006 WeBoch.Com.cn 版权所有:深圳市伟博创科技有限公司
地址:深圳市福田区振华路苏发大厦305栋405 电话:0755-83240703 传真:0755-83240724