在LPCxpresso上对LPC3154重新编程


8

我想知道,是否可以使用自定义固件在LPCExpresso板上加载lpc3154?

我看到该芯片支持安全启动,因此,如果对AES密钥进行了编程,那么在不知道密钥的情况下是不可能的吗?还是有任何选项可在不知道密钥的情况下启动lpc3154?(SD,闪存,USB,JTAG ...什么?)

有人知道密钥是否确实已加载吗?

只是不能购买新的lpc3154-它们在任何地方都没有库存,等待时间为4周以上(价格标签大于此板的价格)...


没有这样的LPCXpresso板!仅有的处理器是LPC1114,LPC1343和LPC1769。
Leon Heller

好吧,LPC3154在主机部分中的每一个上。:-)这就是我要重新编程。我有2个LPCxpresso板,重用这样多汁的192kb SRAM芯片真是太好了……
BarsMonster 2011年


1
我想补充一点赏金,因为我认为这是一个很好的问题,但是您自己也不乏代表;)...也许可以提供一些答案?
tyblu 2011年

1
@tyblu:完成了,不得不更早结束另一

Answers:


4

从我收集的信息来看,AES密钥已加载到芯片中。固件上也可能有CR232检查,也有OTP保险丝套装

资源

在开发过程中,支持从UART和USB(DFU类)接口进行不安全启动。一旦在OTP中编程了AES密钥,就只能通过UART和USB进行安全启动。

如果您花了很多时间,这并不意味着它不能被黑客入侵。我将检查是否已禁用JTAG引脚并从那里开始。

用户指南中的一些有趣的陈述

7.1生产线用例在NXP生产线上,将使用JTAG对OTP进行测试和编程。在测试模式下,可直接访问保险丝盒本身。在编程期间,VPP将需要比应用程序使用情况更高的电压。之后,通过读出保险丝(使用VPP上的低压)来检查书面数据。客户还将只在生产线上对OTP进行编程,此处将使用DFU编程。可以通过USB将用于客户选择的位编程的映像加载到设备中。

7.2最初,应用程序用例很重要的一点是,请确保在初始化期间(通过启动代码)尽早更新data_15寄存器,这将设置安全级别。设计中实现了四个安全级别:

•0级:没有任何保护。

•级别1:受密码保护。在此级别,可以通过设置OTP_con寄存器中的粘性位“ JTAG_EN”,在密码序列确定后(取决于客户应用程序)由软件启用JTAG。

•级别2:在此级别中,可以使用特殊的测试设备来启用JTAG访问。恩智浦仅用于退货分析。

•级别3:JTAG被完全禁用,因此芯片实际上被锁定了。

客户可以编程芯片的安全级别。对于级别1,应设置保险丝位509。对于级别2,设置了保险丝位509和510。对于等级3,熔丝位509、510和511被编程。客户将有一种特殊情况,即禁止对保险丝进行写操作,但是由于在应用中会将低电压(用于读取)连接到VPP,因此无论如何都无法进行写操作。在正常应用期间,保险丝已经在生产线上进行了编程。因此,剩下三个选项:将熔丝数据复制到数据寄存器中,读取此数据,以及设置读取保护。引导代码会将保险丝数据复制到数据寄存器中,因为这是安全性和DRM所需的。此后,可以通过APB0总线从数据寄存器中读取数据(根据读取保护设置)。

编辑:如果密钥已真正加载,则只有拥有密钥后,才能加载自定义固件。


1
2级的存在令人恐惧。我想知道“特殊测试设备”是否覆盖了1级的密码要求吗?
凯文·维米尔

@reemrevnivek,因为许多人担心可能有大量失败的芯片,如果没有它们,它们将无法调试。如果您将等级设置为2,那么您实际上会知道自己在做什么,在最终产品中,您可能会将等级设置为3。
Kortuk 2011年

仍然想知道密钥是否已加载...
BarsMonster 2011年

我找不到任何直接引用,说明已加载了密钥,但由于板子的封闭性质,我的猜测仍然是肯定的。
jsolarski 2011年

2

在LPCXpresso论坛上回答这个问题。设备只能从Code Red加载DFU软件。

NXP_USA

LPCXpresso中嵌入的分布式LPC-LINK板只能从我们的LPCXpresso IDE合作伙伴Code Red加载DFU固件。但是,此处发布了LPCXpresso原理图:http ://www.embeddedartists.com/products/lpcxpresso/lpc1343_xpr.php?tab=res 。它们是更灵活的LPC3154设计的有用参考,该设计可以通过DFU接受任意固件。

LPC3154可从Digi-KeyMouser获得


这不能解释我们无法加载第三方固件的问题。
BarsMonster 2011年

该帖子链接到另一个线程,该线程的底部有一个来自NXP的权威帖子。我会帮您的忙,然后删除其中的链接……
Kevin Vermeer

1

我一直在试验LPCXpresso LPC1114板。编程接口(LPC3154)似乎是USB高速(480 MHz),并且似乎对使用的USB电缆极为苛刻。如果电缆(或主机端口)不是最高级,则可能非常不稳定,崩溃很多,甚至将其他USB设备锁定在同一根端口上。从编写了多个USB堆栈开始,我猜想这个特定的USB堆栈在错误和异常处理方面不是很可靠。

他们为简单的JTAG / SWD接口使用了如此高端的ARM的事实真是可笑,我上次看到MCU的价格超过了13美元(在Digikey)。

如果您有任何困难,我建议您使用其他SWD接口并断开板上的接口。这也应允许将其他(非红色代码)IDE与这些板一起使用。

(如果您在任何设备(甚至全速12 MHz)上遇到USB问题,并且正在使用PC系统单元正面的USB主机连接器,请尝试使用MB本身的背面连接器。品牌的PC,它们的电缆不兼容(且非常不稳定)连接到系统单元的前面。)

伊兹·韦德(Izzy Weird)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.