[ZLG-ARM] 关于LPCARM的CRP

[复制链接]
2471|4
 楼主| simon21ic 发表于 2008-2-24 18:51 | 显示全部楼层 |阅读模式
由于最近通过一些特殊手段研究了一下LPC214x的IAP操作(2.11版本),发现了一些问题和大家讨论一下。<br />LPCARM的Bootloader其实是一段靠近Flash低端的12K的程序,CRP也非常有可能是在这段代码里实现的,并且Boot区的Flash是可以擦除的重写的。所以(我只是举个例子),是否有可能如果我使用别人提供的芯片开发的话,而Boot区已被重写,在CRP上留下后门,这样别人可以获得开发的烧写文件?(看来以后弄芯片还是找ZLG这样的正规渠道)<br />另外,暴一小料(2.11Bootloader):<br />地址0x7d040(或者0x7fffd040)可以读到ChipID,0x7d044(或者0x7fffd044)可以读到BootVersion,当然还有更多的信息在这块空间里
zlgarm 发表于 2008-2-25 11:20 | 显示全部楼层

LPCARM的CRP

simon21ic&nbsp;您好:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LPC214x芯片中Bootloader虽然占用了Flash的空间,也可以被读出来,但却是无法擦除的。如果用户调用IAP擦除或写这快区域的话,会返回错误。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;duty:zlgarm_zhanghuping
 楼主| simon21ic 发表于 2008-2-25 13:26 | 显示全部楼层

我的意思当然不是通过IAP来擦除Boot Sector

而是直接调用未公开的Flash控制寄存器,实现和IAP代码一样的算法,就可以擦除和写入了,LPC2148的Flash控制寄存器在Datasheet中说明的一个保留区域内。
huangbingg 发表于 2008-2-27 20:55 | 显示全部楼层

问下社么是CRP?

我2210工程模板里有这么一句:<br /><br />  IF&nbsp;:DEF:&nbsp;EN_CRP<br />我只是大至知道是句条件编译,标识EN_CRP是啥意思???整个模板我找不到,谁能给我解释下这句话???多谢了!!<br />   
zlgarm 发表于 2008-2-28 16:00 | 显示全部楼层

simon21ic,您好

关于CRP的解释如下图所示。<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;duty:zlgarm_Zhangxiaomeng
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部