主题中讨论的其他器件: UNIFLASH
您好!
我们已经在我们的标准生产流程中使用 MSPFlasher (目前是 v1.3.20)实用程序在多种基于 MSP430F5335的产品上加载固件很长时间。 我们一直在加载自定义 BSL 映像以及正常的应用程序映像、没有任何问题。 我为此流程创建了一个批处理文件、以便我们的生产团队更轻松地完成该流程。 我要对 MSPFlasher 进行两次调用、一次用于对定制 BSL 进行编程、另一次用于应用。 最近、我更新了 BSL、以使用 JTAG 锁定功能、从而在现场部署产品时默认禁用 JTAG 访问。 如果复位期间某个 GPIO 接地、那么更新后的 BSL 允许在启动时启用 JTAG。 这一变更需要我们的生产人员将 GPIO 生产线接地、从而使标准批处理文件成功地对器件进行编程、即使对于具有默认出厂 BSL 的全新器件也是如此。
如果可能、我希望允许我们的生产人员进行初始编程(部分工厂 BSL)、而无需将 GPIO 线路短接至地。 为了达到此目的、我尝试了多种方法(未成功):
1) 1)我已经尝试使用 MSPFlasher 调整命令行选项、以便在对自定义 BSL 进行编程后不会重置器件、因此我可以进行第二次 MSPFlasher 调用以继续对应用进行编程、然后在完成后执行重置。 这是通过两次调用 MSPFlasher 完成的、似乎无法正常工作。
2) 2)如果先尝试对应用程序代码进行编程、然后对 BSL 进行编程。 我使用了带有-e 的 ERASE_SEGMENT 选项来尝试并允许 BSL 编程过程仅擦除 BSL 所需的存储器区域、但 BSL 代码显然超出了段边界、并且出现了错误。
3) 3)作为第三次尝试、我尝试将自定义 BSL 和应用程序代码组合到一个 Intel 十六进制文件中、以便我只需一次调用 MSPFlasher 即可对所有内容进行编程、但除非我将 GPIO 线接地、否则它似乎仍然不起作用。
以下是上面 GPIO 线未接地的选项3的结果:
D:\XA32>tools\MSPFlasher\MSP430Flasher.exe -w "E3_MSP.hex"-v -b -s -z [reset、VCC=3300]
*----- /|------------------ *
*/|_*
*/_/ MSP Flasher v1.3.20 *
*|/*
*----- |/------------------ *
*
*评估触发器...完成
*检查可用的 FET 调试器:
*找到 USB FET @ COM7 <-已选择
*正在初始化接口@ COM7……完成
*检查固件兼容性:
* FET 固件是最新的。
*正在读取 FW 版本...完成
*将 VCC 设置为3300mV...完成
*正在访问设备...完成
*读取设备信息...完成
*解锁 BSL 存储器...完成
*正在将文件载入器件。。。完成
*验证存储器(e3_msp.hex)...
#出口: 10
#错误:无法重置设备
*复位器件(RST/NMI)。。。完成
*开始执行目标代码。。。完成
*正在断开与设备的连接...完成
*
*------------------
*驱动程序:已关闭(EEM 轮询线程已激活)
*------------------
*/
当 MSPFlasher 退出时、应用程序不会自动启动。 如果我在完成上述尝试后对电路板进行下电上电、电路板将正常启动、看起来已成功对 BSL 和应用程序进行编程。
以下是上面的选项3在 GPIO 线接地的情况下的结果:
D:\XA32>tools\MSPFlasher\MSP430Flasher.exe -w "E3_MSP.hex"-v -b -s -z [reset、VCC=3300]
*----- /|------------------ *
*/|_*
*/_/ MSP Flasher v1.3.20 *
*|/*
*----- |/------------------ *
*
*评估触发器...完成
*检查可用的 FET 调试器:
*找到 USB FET @ COM7 <-已选择
*正在初始化接口@ COM7……完成
*检查固件兼容性:
* FET 固件是最新的。
*正在读取 FW 版本...完成
*将 VCC 设置为3300mV...完成
*正在访问设备...完成
*读取设备信息...完成
*解锁 BSL 存储器...完成
*正在将文件载入器件。。。完成
*验证存储器(E3_MSP.hex)...完成
*
*------------------
*参数:-w e3_msp.hex -v -b -s -z [reset,VCC=3300]
*------------------
*驱动程序:已加载
DLL 版本: 31400000
* Fw 版本: 31000000
*接口: TIUSB
硬件版本: U 3.0
JTAG 模式:自动
设备: MSP430F5335
* EEM : 7级, ClockCntrl 2
*擦除模式: ERASE_ALL
*程序文件: e3_msp.hex
*已验证: true
BSL 解锁: true
* InfoA 访问:错误
* VCC 打开: 3300mV
*------------------
*复位器件(RST/NMI)。。。完成
*开始执行目标代码。。。完成
*正在断开与设备的连接...完成
*
*------------------
*驱动程序:关闭(没有错误)
*------------------
*/
GPIO 线路接地时没有出现错误、并且应用程序会在 MSPFlasher 退出时自动开始运行。
你有什么建议,我可以做到这一点。 我希望在对 TI 的新器件进行编程时、无需将 GPIO 线接地、从而最大限度地减少我们的生产步骤。 我理解并希望以后所有的 JTAG 访问都需要将 GPIO 线路接地。
谢谢。
格雷格·邓恩