详解 NXP Cortex-M3 加密设置
来源:互联网 发布:win10禁用软件联网 编辑:程序博客网 时间:2024/05/14 13:03
原文地址::http://blog.csdn.net/chengfeng135/article/details/49638495
相关文章
1、Code Read Protection (CRP)----https://community.nxp.com/message/630586
详解 NXP Cortex-M3 加密设置
——嵌入式软硬件同盟协会 相信最近手上有 NXP Cortex-M3 的 LPC13XX LPC17XX 类的器件或者开发板的不少
了,但是新手对 NXP 的加密方式往往比较费解,和别的如 51、AVR 的加密方式不太一样了, 通常 51、AVR 的加密往往通过编程器,在写入 FLASH 的过程中对其 IC 的配置字或加密位 进行修改,但是,NXP Cortex-M3 的加密在下载软件中却没有选项或说明,那么到底如何对我们的器件进行加密呢?这将是我们的话题。
其实通过 NXP 的“AN10851”的阅读,我们即可以了解应该如何设置了,http://tiyubisai.com/video_news/news_135631.html 但如何在我 们自己的工程项目中进行设置呢,往往我们拿到的工程项目中没有该设置项,如图:
如此,打开 startup_LPC13xx.s 或者与 CPU 所对应的的汇编文件,找到有这么一段:
IF
:LNOT::DEF:NO_CRP
AREA
|.ARM.__at_0x02FC|, CODE, READONLY
CRP_Key
DCD
0xFFFFFFFF
ENDIF
我们可以看到,这有几个关键的地方“NO_CRP”、 0x02FC 和 0xFFFFFFFF,如果
我们在前面定义有“NO_CRP”,那么我们后面的代码也就不起作用了,所以在需要加密的时候前面就一定不能再定义了,除了文件里的定义我们还要注意这里:
在 ASM 的汇编定义项里,我们需要删除此定义,0x02FC 是在启用加密后,其加密值
所在的地址,0xFFFFFFFF 和定义“NO_CRP”的效果一样,但是代码不一样,大家可以自 己通过修改来看效果,0xFFFFFFFF 是无加密,手动修改前面的代码为如下:
;// <h> Code Read Protection level (CRP)
;//
;//
;//
;//
<o>
CRP_Level:
<0xFFFFFFFF=> Disabled
<0x12345678=> CRP1
<0x87654321=> CRP2
;//
<0x43218765=> CRP3 (OTP 模式,你确认吗?)
;//
</h>
CRP_Level
EQU
0xFFFFFFFF
IF
:LNOT::DEF:NO_CRP
AREA
|.ARM.__at_0x02FC|, CODE, READONLY
CRP_Key
DCD
CRP_Level
ENDIF
打开右边的“Configuration Wizard”项,这是“Option”中会多出一个选项,此时
的加密级别为默认的“Disabled”,即代码中所定义的 CRP_Level EQU 0xFFFFFFFF,。
设置加密级别为“CRP2”,保存并编译。
得到的文件中我们可以看到在 0x2FC 的位置有我们的加密值了,
例如将文件烧写到 LPC1343 器件,再按“BOOT”键进入 U 盘 BOOT 模式,打开 文件可以看到所有数据“00”了,说明加密成功。如图:
CRP3 为 OTP 模式,一般作为不再修改的产品或有写好的 IAP 做升级时使用,否则请 设置为低的加密模式。
http://blog.csdn.NET/chengfeng135/article/details/49638435
http://blog.csdn.Net/chengfeng135/
- 详解 NXP Cortex-M3 加密设置
- 详解 NXP Cortex-M3 加密设置
- Cortex-M3 (NXP LPC1788)之GPIO
- Cortex-M3 (NXP LPC1788)之PWM
- Cortex-M3 (NXP LPC1788)之UART用法
- Cortex-M3 (NXP LPC1788)之RTC
- Cortex-M3 (NXP LPC1788)之EEPROM存储器
- Cortex-M3 (NXP LPC1788)之IIC控制器
- Cortex-M3 (NXP LPC1788)之IIS控制器
- Cortex-M3 (NXP LPC1788)之IIC控制器
- Cortex-M3 (NXP LPC1788)之UART用法
- Cortex-M3 (NXP LPC1788)之EEPROM存储器
- Cortex-M3 (NXP LPC1788)之开发环境搭建
- Cortex-M3 (NXP LPC1788)之启动代码分析
- Cortex-M3 (NXP LPC1788)之SysTick系统节拍定时器
- Cortex-M3 (NXP LPC1788)之外部中断操作
- Cortex-M3 (NXP LPC1788)之WDT窗口看门狗定时器
- Cortex-M3 (NXP LPC1788)之ADC数模转换器的应用
- jQuery aJax技术以及PHP实现简单聊天室
- 实现拦截一条有序广播
- redis安装以及php扩展
- 有5个数,求和最接近于66的4个数(背包问题)
- 搜索二维矩阵
- 详解 NXP Cortex-M3 加密设置
- 哈希表简单实现
- 深度学习笔记——Attention Model(注意力模型)学习总结
- (项目)AR电子书系统创新实训第四周(2)
- 项目实训——第四周(1)
- 关于qemu的二三事(6)————qemu源码分析之vcpu
- Qt之QDateTimeEdit
- kubernetes集群中利用etcd和grpc实现golang服务间通信
- HDU 2132 An easy problem