详解 NXP Cortex-M3 加密设置
来源:互联网 发布:软件测试基础知识书籍 编辑:程序博客网 时间:2024/05/14 09:11
详解 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数模转换器的应用
- 网络知识补遗
- 有三个桶,两个大的可装8斤的水,一个小的可装3斤的水,现在有16斤水装满了两大桶就是8斤的桶,小桶空着,如何把这16斤水分给4个人,每人4斤。没有其他任何工具,4人自备容器,分出去的水不可再要回来。
- iOS开发中的常见设计模式
- android build Communication error with Jack server (52)
- 通过分析 JDK 源代码研究 Hash 存储机制--转载
- 详解 NXP Cortex-M3 加密设置
- 移动端app支付宝支付
- 高德地图基础功能使用心得
- 对 oracle 数据库日期格式,以及对日期操作的理解
- mongodb aggregation 聚合
- android ExpandableListView 四级目录结构
- 寻找热门查询
- Android开发:Fragment不同操作的生命周期
- (六)Spring+JMS+ActiveMQ+Tomcat实现消息服务