我想知道,是否可以使用自定义固件在LPCExpresso板上加载lpc3154?
我看到该芯片支持安全启动,因此,如果对AES密钥进行了编程,那么在不知道密钥的情况下是不可能的吗?还是有任何选项可在不知道密钥的情况下启动lpc3154?(SD,闪存,USB,JTAG ...什么?)
有人知道密钥是否确实已加载吗?
只是不能购买新的lpc3154-它们在任何地方都没有库存,等待时间为4周以上(价格标签大于此板的价格)...
我想知道,是否可以使用自定义固件在LPCExpresso板上加载lpc3154?
我看到该芯片支持安全启动,因此,如果对AES密钥进行了编程,那么在不知道密钥的情况下是不可能的吗?还是有任何选项可在不知道密钥的情况下启动lpc3154?(SD,闪存,USB,JTAG ...什么?)
有人知道密钥是否确实已加载吗?
只是不能购买新的lpc3154-它们在任何地方都没有库存,等待时间为4周以上(价格标签大于此板的价格)...
Answers:
从我收集的信息来看,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总线从数据寄存器中读取数据(根据读取保护设置)。
编辑:如果密钥已真正加载,则只有拥有密钥后,才能加载自定义固件。
在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接受任意固件。
我一直在试验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)