This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/MSP430I2041:无法将.hex 文件加载到 MSP430i2041上

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP430I2041, UNIFLASH, MSP430G2553, MSP430-FLASHER, MSP-FET, MSP-TS430RHB32A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/570516/compiler-msp430i2041-cannot-load-hex-files-onto-msp430i2041

器件型号:MSP430I2041
主题中讨论的其他器件: UNIFLASHMSP430G2553MSP430-FLASHERMSP-FETMSP-TS430RHB32A

工具/软件:TI C/C++编译器

您好!

我目前正在尝试使用 MSP430-FET 将十六进制文件加载到 MSP430i2041上。 该器件已焊接到分线板上(所有连接均已检查和验证)、然后被推入试验电路板中(检查和验证了所有条形)。 我已经在引脚15、16和14上安装了适当的电容器并上拉/下拉电阻器、并在 VCC 至 AVSS/DVSS 和15至 AVSS/DVSS 之间安装了适当的电容器。 我还具有相应的电阻器、将引脚11 (ROSC)连接到 AVSS。

十六进制文件是使用 MSP430_GCC 编译的、我同时使用 MSP430Flasher 和 UniFlash 尝试将代码下载到器件上。 闪存程序似乎都不起作用。 我已经尝试了4线制 JTAG 和2线制 SBW。 这些是我得到的错误:

MSP430Flasher:

*---- /|-------------------------------------------------------- *

*  /|__                                  *

*  /// MSP  Flasher v1.3.11                       *

*   |/                                   *

*---- |/---------------------------------------------------------- *

*

*评估触发器...完成

*检查可用的 FET 调试器:  

*发现 USB FET @ usbmodem1411 <-已选择

*正在初始化接口@ usbmodem1411...完成

*检查固件兼容性:  

* FET 固件是最新的。

*正在读取固件版本...完成

*将 VCC 设置为3000mV...完成

*正在访问设备...完成

*正在读取设备信息...完成

*正在将文件加载到设备中...

#出口:59

#错误:无法写入设备内存

*断电...完成

*正在从设备断开连接...完成

*  

***********************************************************************************************。

*驱动程序   :已关闭(无错误)

***********************************************************************************************。

UniFlash 版本4.1

状态:MSP430:写入长度为0x2bc 的第0页0x8000处的存储器块时遇到问题:无法写入器件存储器

状态:MSP430:文件加载器:验证失败:目标写入0x8000失败

状态:MSP430:无法运行目标 CPU:无法运行器件(至断点)

我在用于 MSP430 GCC 的 makefile 文件、我尝试编译的脚本(blink.c、MSP430 GCC 附带的标准示例)以及运行 makefile 后由 MSP430-elf-objcopy 生成的十六进制文件的下面附加了该脚本。

我还尝试使用完全相同的设置对十六进制文件进行编程、将其添加到不同的器件(MSP430g2553)上、一切顺利。

请帮助。 如果有明显的事情我错过了、请指出。 欢迎提出任何有用的建议。

谢谢!

makefile:

script=闪烁
objects=$(script_directory)/$(script).o


GCC_DIR =../../../bin
support_file_directory =./../../include
hex_directory =./hex_files
out_directory =./out_files
script_directory =./scripts

器件= msp430i2041
CC =$(GCC_DIR)/MSP430-elf-gcc
gdb =$(GCC_DIR)/MSP430-elf-gdb

CFLAGS =-i $(support_file_directory)-mmcu=$(device)-O2 -g
LFLAGS =-L $(support_file_directory)

十六进制:全部
$(gcc_DIR)/msp430-elf-objcopy $(out_directory)/$(script).out $(hex_directory)/$(script).hex -O ihex

全部:${objects}
$(CC)$(CFLAGS)$(LFLAGS)$? o $(out_directory)/$(script).out

调试:全部
$(GDB)./$(out_directory)/$(script).out

清理:
rm -f ./$(hex_directory)/$(script).hex ./$(out_directory)/$(script).out $(objects)

blink.hex  

:0C8000000000FFFF0000FFFF0000000000000000 78
:10800C003140000A3C4004020D433E401200B012C5
:10801C006C823C4000023D40B8820D9C04243E40E2
:10802C000400B0122C82B0129C820C43B01242811C
:10803C003440008035400080264330406880344016
:10804C0000803540008026433040688034400080FA
:10805C00354000803640FEFF304068800594052492
:10806C0027440456A7121040F4FF304130413041F0
:10807C003C40B8823C80B7826D430D9C072C3D4040
:10808C0000000D9303243C40B8828D1230410A123B
:10809C003A40B8823A80B8820A110C4AB012788100
:1080AC000C5A0D4C0D110D9307243E4000000E93FD
:1080BC0003243C40B8828E123A4130410A12091214
:1080CC00C293040220203A400A803A8008800A11A8
:1080DC003A53394008801C42060C9A092C1C5356
:1080EC00824C06020C5C0C592C4C8C123040E280F9
:1080FC00B0127C803D4000000D9303243C40008076
:10810C008D12D2430402304072813E4000000E9327
:10811C0005243D4008023C4000808E123C40000289
:10812C008C93000005243D4000000D9301248D121A
:10813C00B0129A8030412183B240805A2001F2D093
:10814C0010001400F2E010001200B14300B15313
:10815C0000002C410C93FB233040508134413541BD
:10816C0036413741384139413A41304112C30C1044
:10817C0012C30C1012C30C1012C30C1012C30C1012C30C102F
:10818C0012C30C1012C30C1012C30C1012C30C1012C30C101F
:10819C0012C30C1012C30C1012C30C1012C3012C30C100F
:1081AC0012C30C1012C30C1030413D5312C30C10EF
:1081BC000D93FB23304112C30D100C1012C30D1084
:1081CC000C1012C30D100C1012C30D100C1012C396
:1081DC000D100C1012C30D100C1012C30D100C103E
:1081EC0012C30D100C1012C30D100C1012C30D1075
:1081FC000C1012C30D100C1012C30D100C1012C366
:10820C000D100C1012C30D100C1012C30D100C100D
:10821C0030413E5312C30D100C100E93FA23304113
:10822C000B4C0B5E0D9C03280E4C30405A820F4DAC
:10823C000F5E0C9FF92F0D4F0E8F4D0F5E0F938E
:10824C000E243B533D53EB4D0000304046820E9BB9.
:10825C000624EE4D00001E5330405A8230410F
:10826C000F4C0E5C0F9E0524CF4D00001F53304069
:10827C007082304130410A123A4004802C4A3C93BF
:10828C0005248C123A50FEFF304088823A4130412E
:10829C00B0121681B0128282B0124A80B0123C80A9
:0C82AC003041B0125880B012C880304140
0482B8000000000000C2
:02FFFE000C8075
:040000030000800C6D
:00000001FF

blink.c:

//
// MSP430闪烁 LED 演示-软件切换 P1.4
//
//说明;通过对软件循环内的 P1.4执行异或操作来切换 P1.4。
// ACLK = n/a、MCLK = SMCLK =默认 DCO
//
// MSP430i20xx
//------------
///|\| XIN|-
//|||
//-|RST XOUT|-
//||
//| P1.4|--> LED
//
// J. Stevenson
// Texas Instruments、Inc
// 2011年7月
//使用 Code Composer Studio v5构建
//

#include

int main (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
P1DIR |= BIT4;//将 P1.4设置为输出方向

for (;;){
volatile unsigned int i;// volatile 以阻止优化

P1OUT ^= BIT4;//使用异或切换 P1.4

I =-1;// SW 延迟
我----
while (i!= 0);


返回0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris、

    MSP430-FLASHER 日志表示 MSP-FET 固件和驱动程序是最新的、并且 FET 和目标 MSP430i2041器件之间的通信成功。 MSP Flasher 支持.hex 文件、0x8000是 i2041主存储器的正确起点。

    您测试了多少个 i2041器件、您使用的是哪个版本? 该器件之前是否进行过编程、如果进行了编程、则存储在该器件上的内容是什么? 您是否能够提供 MSP-TS430RHB32A 来进行测试、而不是输出/试验电路板设置? 您的 PC 正在运行什么操作系统、正在使用什么类型的 USB 端口(2.0、3.0等)?

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在2个不同的 i2041器件上进行了测试。 我不确定您所使用的版本是什么意思、您能澄清一下吗? 用于测试的2个器件直接来自 DigiKey、据我所知、以前不应进行编程。 我正在使用2013 Macbook Pro 并运行最新版本的 Sierra。 2013 Pro 标配2个 USB 3端口。

    MSP-TS430RHB32A 有点贵、目前可能不是一个好选择、因为正如我之前所说的、我有一个 MSP430G2553可以编程。 您是否建议问题可能是我的试验电路板设置?

    同样、我们非常感谢您提出的任何建议。

    谢谢、

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    MSP 器件顶部标有其特定版本、但如果您最近从 DigiKey 购买、我不会想到会出现问题。 由于它们是全新的、因此它们也应该是空白的、因此我们不必担心 JTAG 被禁用。 我忘记了您刚才提到的 MSP430G2553也可以使用相同的设置、因此操作系统和 USB 端口很可能不是问题所在、尽管如果方便、您可能希望尝试使用 Windows 计算机和 USB 2.0。 此时、最合乎逻辑的结论是问题出在为 JTAG 线路添加寄生电容的试验电路板设置上、每个 MSP 衍生器件的引脚响应方式不同、因此在使用 i2041时、与 G2553搭配使用的可能无法成功。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、非常感谢帮助我缩小问题范围。 至少我知道我所做的事情并不明显。 我将修复试验电路板设置并从那里继续。 如果我有任何成功、我将重新发布结论以及错误是什么。

    谢谢。

    此致、

    Chris