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.

[参考译文] MSP430FR2355:MSP430FR2355,BSL,不会擦除或加载新代码。

Guru**** 2001915 points
Other Parts Discussed in Thread: MSP430FR2355, MSP-EXP430FR2355, MSP-FET
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/736686/msp430fr2355-msp430fr2355-bsl-does-not-erase-or-load-new-code

器件型号:MSP430FR2355
主题中讨论的其他器件: MSP-EXP430FR2355MSP-FET

使用 I LOAD 下方的代码、在 CCS-8中以调试模式运行。 我运行脚本编写器。 我获得了大量 NACK 返回、在下电上电后、MSP430FR2355运行之前加载的代码、而不是通过 BSL 脚本程序加载的新代码。

代码:

#include


int main (空)

//
//时钟配置
//

//停止看门狗计时器
WDTCTL = WDTPW | WDTHOLD;

//根据 MCLK 的器件数据表的要求配置一个 FRAM 等待状态
//在配置时钟系统之前在8MHz 以上运行。
FRCTL0 = FRCTLPW | NWAITS_1;

_bis_SR_register (SCG0);//禁用 FLL

CSCTL1 = DCORSEL_3;// DCO 范围= 8MHz

CSCTL2 = FLLD_0 + 243;// DCOCLKDIV = 8MHz

_DELAY_CYCLES (3);

_BIC_SR_register (SCG0);//启用 FLL

//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;

_disable_interrupt ();
((((void (*)))))0x1000)();

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果有人只能为我获取此代码的源代码:
    BSL 版本
    00.09.36.B4
    我可能会弄清楚发生了什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Don、

    下面是一些 BSL 资源的链接。 我们没有您参考的确切版本(00.09.36.B4)、但它们应该相似。 BSL 文件夹链接中的版本为00.08.35.B3。 您将需要查看 API > BSL430_API_FRAM.c、Command_Interpreter > BSL430_Command_Interpreter.c 和 Peripheral_Interfaces > eUSCI_UART_I2C > BSL430_PI_eUSCI_UART_I2C.c 文件。

    software-dl.ti.com/.../index_FDS.html

    我还有几个问题、希望您能回答。

    您实施等待状态是否有原因? 如果您以8MHz 运行、则不必执行此操作。 是否可以尝试在没有等待状态的情况下运行软件?

    此外、您在调试会话期间如何与 PC 通信? 是通过 eZ-FET 实现的吗?

    您能否发送您提到的插孔的屏幕截图?

    谢谢、

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

    您能帮我找到参考文件吗?  我打开该链接、它看起来像标准的非 FR 代码。  我完成了每个链接。

    我不确定等待状态。  我们有两个人在处理这个问题、Wes 可能已经在某个地方提出了一些建议、以包括等待状态。  我仅使用这个简单的 CC8启动代码进行了测试、但没有结果。 我认为这将以默认时钟速度运行、就像使用硬件调用它一样。  我将尝试弄清楚等待状态、并使用8MHz 时钟通过两种方式进行尝试。

    我们只有标准 FET 探针。  我已经尝试过、也没有想到测试线或复位会产生干扰。  

    我必须再次设置、但我想、Wes 提到了这些 nacks。  没有 Nack、只是没有任何数据返回。  

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

    很抱歉不能澄清。 当您单击我在上面发布的链接时、单击指向页面底部的"MSP 430 Custom BSL Package"链接。 这将是最新的 BSL 文件夹。 进入 MSP430BSL_1_01_00_01文件夹后、可以在以下位置找到这些文件:

    IAR_BSL_Source > API > BSL430_API_FRAM.c
    IAR_BSL_Source > Command_Interpreter > BSL430_Command_Interpreter.c
    IAR_BSL_Source > Peripheral_Interfaces > eUSCI_UART_I2C > BSL430_PI_eUSCI_UART_I2C.c

    这些文件在闪存和 FRAM 器件之间看起来相似。

    我很好奇、如果你摆脱等待状态、会发生什么情况。 时钟需要小于或等于8MHz (您正在执行此操作)。 等待状态不是必需的、我想知道它是否会导致问题。

    请告诉我您在等待状态被删除时看到的内容。

    谢谢!

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

    我正在尝试构建这个的可链接版本-在哪里可以找到 MSP430FR2355的这个文件?

    #include "BSL_Device_File.h"

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

    我正在检查该文件是否可用。

    谢谢、

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

    是否可以联系小组、获取此 SKU 的正确代码并发送给我?  我很高兴签署 NDA。  我真的需要以某种方式解决这个问题。  是否有开发板可供用户测试?  这不应该这么困难。

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

    您好、Don、

    我们使用您提供的代码运行了一些测试、看起来它正常工作。 我们看到器件跳转到 BSL 并保持在该位置以等待 BSL 命令。 我们使用 SET_BAUDRATE 命令对其进行了测试。

    下面是响应0x00时发送的 SET_BAUDRATE 命令的图片(这正是我们期望看到的)

    这里是 FRAM BSL 用户指南的链接、您可以在其中看到针对几个不同 BSL 命令(包括 SET_BAUDRATE)的示例响应。

    我可能需要一些时间才能发送您请求的文件(假设我获得了这样做的权限)。 但是、看起来它正在努力实现我们的目标

    您能否向我发送您所看到的确切问题的屏幕截图?

    谢谢、

    Mitch

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

    您是否能够解决您的问题? 如果没有其他问题、我将结束本主题。

    谢谢!

    Mitch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mitch、我现在就重新开始工作了。 我们发现我们使用了错误的 UART、并认为这可以解决问题。 这个周末、我成功地将 UART 从 UCA1移动到 UCA0、并使用 SBW 与4线 JTAG 制作适配器线缆进行下载。 当我调用 BSL 时、它会在汇编代码中执行几次调用、然后将 TX 线(P1.7)降为低电平、并寻找一些从未变为真且只是挂起的条件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Don、

    只是为了澄清、您仍在尝试通过 SW 调用 BSL、对吧? 有哪些特性?

    _disable_interrupt ();
    ((void (*)())) 0x1000)()

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

    是的。  这是压缩的项目 export.e2e.ti.com/.../sent2ti.zip

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

    现在、我已在 A0上设置了带有串行端口的 LaunchPad 板、它成功运行了我们的代码。  然后、我转到 main 的顶部并设置一个断点。  中断后、我找到此代码、然后"移至线路"

                  _disable_interrupt ();
                 FRCTL0 = FRCTLPW | NWAITS_1;
                 _bis_SR_register (SCG0);                          //禁用 FLL
                 CSCTL1 = DCORSEL_3;// DCO 范围= 8MHz
                 CSCTL2 = FLLD_0 + 243;                            // DCOCLKDIV = 8MHz
                 _DELAY_CYCLES (3);
                 _BIC_SR_register (SCG0);                          //启用 FLL
                 //禁用 GPIO 上电默认高阻抗模式以激活
                 //先前配置的端口设置
                 PM5CTL0 &=~LOCKLPM5;
                 ((((void (*)))))0x1000)();


    我执行到 BSL 中、在 BSL 代码设置时钟寄存器的位置之后、它会将 MOV.W 执行到计算的存储器中、在该点、TX 线看起来像是被更改为一个输入。  它永远不会被设置为 TXD 输出(保持一个输入)、并且在某个时候代码会挂起。  

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

    之前、Mitch 向我发送了一个正在运行的2355的屏幕截图、该屏幕截图是对 set Budrate 命令的响应。  我注意到 TX 线路实际上是低电平的、直到它看到数据进入、所以我复制了这个序列、然而、TX 线路仍然是浮动的。  (它在我的应用程序中传输。)  测试是在 LaunchPad 上完成的。  对于 LaunchPad、我已获取 P1.6和 P1.7、并将它们电平转换为适用于 BSL_RX 和 BSL_TX 的 RS232电平。  

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

    您好、Don、

    我想让您检查一件事。 您能否在 CCS 中右键点击项目,然后转至 Properties > General > MPU,并确保“Enable Memory Protection Unit (MPU)”(启用内存保护单元(MPU))框未被选中? 我认为默认情况下可能会选中此复选框。 请取消选中此复选框(如果已选中)、重新编译工程、并查看 BSL 的行为。

    谢谢、

    Mitch

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

    您的意思是:

    估计 FR 类型会有所不同。  检查后、我取消选中了它、并使用相同的负结果尝试了脚本编写器和设置波特率命令。

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

    是的、感谢您指出这一点。 我忘记了该器件没有 MPU。 您能否尝试禁用这两个框(启用 FRAM 写保护和保护数据 FRAM 存储器)?

    在 SYSCFG0寄存器中、DFWP 和 PFWP 位应清零。

    谢谢、

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

    我无法让他们都清楚:

    此外、我查看了寄存器、在进行干净重建后、这些位为1、设置如上所示:

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

    您能否在尝试调用 BSL 之前尝试清除 SW 中的这些位?

    谢谢、

    Mitch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我似乎无法使这些位保持为0。 有什么想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在跳转到主代码之前、我跳转到 BSL 的缩写代码不会执行大量代码、但我的生产应用程序会执行这些代码。 我能够中断__MPU_init(),在这里它设置了该寄存器,并在它写回 SYSCFG0之前更改 R15。 这确实清除了这些位、但它仍然无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在跳转到主代码之前、我跳转到 BSL 的缩写代码不会执行大量代码、但我的生产应用程序会执行这些代码。 我能够中断__MPU_init(),在这里它设置了该寄存器,并在它写回 SYSCFG0之前更改 R15。 这确实清除了这些位、但它仍然无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Don、

    您是否提供了解锁寄存器的密码? 类似这样的操作应该能够:

    SYSCFG0 = FRWPPW | DFWP | PFWP;

    谢谢、

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

    Mitch -我取得了一些进展!

    我设置了客户配置块、使其强制串行下载(与自动配置)、并得到对我设置的波特率的响应。  我怀疑 AutoConfig 在器件上无法正常工作、或者我们的 I2C 器件会导致它认为它是 I2C 传输。  一旦我跳过这个障碍、我将告诉你我是否可以实际下载软件。  

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

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

    结果我只能看到它尝试了一次、然后我失去了公式。  我添加了代码以使 bslConfig 正常工作。  这是您的 SLAU550P 文档第11页的内容、但有一个例外:

    //
    // BSL 配置
    //
    #define BSL_CONFIG_signature (0x695A)// BSL 配置签名
    #define BSL_CONFIG_PASSWORD (0x5A00)// BSL 用户配置签名
    #define BSL_CONFIG_INT_RAM_ERAGE_BY_INIT (0xFFF7)//在 BSL 调用期间擦除 Tiny RAM
    #define BSL_CONFIG_INT_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 Tiny RAM
    #define BSL_CONFIG_RAM_ERAGE_BY_INIT (0xFFFB)//在 BSL 调用期间擦除 RAM
    #define BSL_CONFIG_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 RAM
    #define BSL_CONFIG_INTERFIT_UART_I2C (0xFFFC)//启用 UART 和 I2C
    #define BSL_CONFIG_INTERFIT_UART_ONLY (0xFFFD)//启用 UART
    #define BSL_CONFIG_INTERFIT_I2C_ONLY (0xFFFE)//启用 I2C

    #pragma RETAIN (bslConfigurationSignature)
    #pragma DATA_SECTION (bslConfigurationSignature、".bslconfigsignature")
    const unsigned int bslConfigurationSignature = BSL_CONFIG_signature;
    pragma RETAIN (bslConfig)
    #pragma DATA_SECTION (bslConfig、".bslconfig")
    const unsigned int bslConfig =(BSL_CONFIG_PASSWORD |~BSL_CONFIG_INTERFIT_UART_ONLY);

    我必须在 BSL_CONFIG_INTERFIT_UART_ONLY 前面添加 μ~。  不知道这是如何按照书面形式工作的。  如您所见、我的配置现在位于内存中:

    这是我跳转到调用的代码:

                 _disable_interrupt ();
                 FRCTL0 = FRCTLPW | NWAITS_1;
                 _bis_SR_register (SCG0);                          //禁用 FLL
                 CSCTL1 = DCORSEL_3;// DCO 范围= 8MHz
                 CSCTL2 = FLLD_0 + 243;                            // DCOCLKDIV = 8MHz
                 _DELAY_CYCLES (3);
                 _BIC_SR_register (SCG0);                          //启用 FLL
                 //禁用 GPIO 上电默认高阻抗模式以激活
                 //先前配置的端口设置
                PM5CTL0 &=~LOCKLPM5;

                 ((((void (*)))))0x1000)();

    我的 SYSCONFIG0位于 x09603。  我认为这是受保护模式、但您的代码示例中有我设置位的情况、因此我不确定。  这似乎没有什么影响。  

    我不知道我在工作时可能做了哪些不同的事情、但仍在尝试弄清楚。

    您能提供进一步的帮助吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mitch -我又找到了公式! 结果~BSL_CONFIG_INTERFIT_UART_ONLY = 2、而不是其应有的1。 我不确定所有这些都是如何工作的、但当我将其更改为1时、我将再次设置波特率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Don、

    您也可以运行其他 BSL 命令吗? 它是否正常工作?

    谢谢、

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

    它非常不稳定。  有时我可以设置波特率、有时我不能。  我还无法对任何内容进行实际编程。  现在就积极工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否尝试将 BSL_CONFIG_INTERFIT_UART_ONLY 重新定义为0x00FD? 我想知道是不是

    const uint16_t bslConfig =(BSL_CONFIG_PASSWORD | BSL_CONFIG_INTERFIT_UART_ONLY);

    当 BSL_CONFIG_INTERFIT_UART_ONLY = 0xFFFD 时、操作会破坏 BSL_CONFIG_PASSWORD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对我来说、这似乎是手册中的错误、如果不是我肯定不理解的话。 我认为 bslConfig 应该为0x5A01、这就是我要将其设置为的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还认为手册可能有错误。 我将与我们的团队进行双倍检查。

    那么、当显式将0x5A01写入 blsConfig 时、您仍会遇到故障行为?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是。 我正在尝试找到一组稳定的条件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找不到一组稳定的条件。 有时 BSL 会响应、但我无法肯定它已经执行了命令。 我可以让它心情一致地以0x51错误进行响应-有时。 正如 TI 所说的那样、它很好:执行这个、这个、这个、然后它将起作用。 您能否将此问题上报给有权访问 FR2355的人员、并告诉我需要做些什么来完成此问题? 现在,这是向军方交付18台成像计算机的关键途径。 我们必须解决这一问题。

    下面是我使用的代码:

    #include

    #define BSL_CONFIG_signature (0x695A)// BSL 配置签名
    #define BSL_CONFIG_PASSWORD (0x5A00)// BSL 用户配置签名
    #define BSL_CONFIG_INT_RAM_ERAGE_BY_INIT (0xFFF7)//在 BSL 调用期间擦除 Tiny RAM
    #define BSL_CONFIG_INT_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 Tiny RAM
    #define BSL_CONFIG_RAM_ERAGE_BY_INIT (0xFFFB)//在 BSL 调用期间擦除 RAM
    #define BSL_CONFIG_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 RAM
    #define BSL_CONFIG_INTERFIT_UART_I2C (0xFFFC)//启用 UART 和 I2C
    #define BSL_CONFIG_INTERFIT_UART_ONLY (0xFFFD)//启用 UART
    #define BSL_CONFIG_INTERFIT_I2C_ONLY (0xFFFE)//启用 I2C

    #pragma RETAIN (bslConfigurationSignature)
    #pragma DATA_SECTION (bslConfigurationSignature、".bslconfigsignature")
    const unsigned int bslConfigurationSignature = BSL_CONFIG_signature;
    pragma RETAIN (bslConfig)
    #pragma DATA_SECTION (bslConfig、".bslconfig")
    const unsigned int bslConfig =(BSL_CONFIG_PASSWORD | 1);

    /*
    * main.c
    *
    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    _disable_interrupt ();

    FRCTL0 = FRCTLPW /*| NWAITS_1*/;
    //__bis_SR_register (SCG0); //禁用 FLL
    // CSCTL1 = DCORSEL_3;// DCO 范围= 8MHz
    // CSCTL2 = FLLD_0 + 243; // DCOCLKDIV = 8MHz
    _DELAY_CYCLES (90000);
    //__BIC_SR_register (SCG0); //启用 FLL

    // SYSCFG0 = FRWPPW;
    ((((void (*)))))0x1000)();

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

    我能够握住 FR2355 Launchpad 并运行了一些测试。 当我尝试使用您在上面提供的代码执行 BSL 调用时(没有更改)、它不起作用。 但是、当我注释掉所有用户定义的配置设置(#include 之间的所有#defines 和#pragma)时 和 main)。 我能够成功运行 CHANGE_BAUD_RATE、RX_PASSWORD 和 TX_BSL_VERSION 命令。 我没有对您的代码进行任何其他更改。

    您的系统是否需要您实施用户定义的设置来擦除 Tiny RAM 和 RAM? 如果默认设置是可接受的、则无需用户定义的设置来调用 BSL。

    谢谢、

    Mitch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您会说、使用 MSP-EXP430FR2355卡、P1.6和 P1.7连接到 RS232转换器、转换器的输出连接到 PC、USB 端口连接到 PC、您可以运行 Code Composer 并下载和运行以下代码:
    #include
    /*
    #define BSL_CONFIG_signature (0x695A)// BSL 配置签名
    #define BSL_CONFIG_PASSWORD (0x5A00)// BSL 用户配置签名
    #define BSL_CONFIG_INT_RAM_ERAGE_BY_INIT (0xFFF7)//在 BSL 调用期间擦除 Tiny RAM
    #define BSL_CONFIG_INT_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 Tiny RAM
    #define BSL_CONFIG_RAM_ERAGE_BY_INIT (0xFFFB)//在 BSL 调用期间擦除 RAM
    #define BSL_CONFIG_RAM_NOT_ERAGE_BY_INIT (0xFFFF)//(默认值)在 BSL 调用期间不会擦除 RAM
    #define BSL_CONFIG_INTERFIT_UART_I2C (0xFFFC)//启用 UART 和 I2C
    #define BSL_CONFIG_INTERFIT_UART_ONLY (0xFFFD)//启用 UART
    #define BSL_CONFIG_INTERFIT_I2C_ONLY (0xFFFE)//启用 I2C

    #pragma RETAIN (bslConfigurationSignature)
    #pragma DATA_SECTION (bslConfigurationSignature、".bslconfigsignature")
    const unsigned int bslConfigurationSignature = BSL_CONFIG_signature;
    pragma RETAIN (bslConfig)
    #pragma DATA_SECTION (bslConfig、".bslconfig")
    const unsigned int bslConfig =(BSL_CONFIG_PASSWORD | 1);
    *

    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

    _disable_interrupt ();

    FRCTL0 = FRCTLPW /*| NWAITS_1*/;
    _DELAY_CYCLES (90000);
    ((((void (*)))))0x1000)();


    然后使用以下脚本运行 BSL-Scripter 3.4.0.1:

    模式 FRxx UART 9600 COM16
    详细
    TX_BSL_VERSION

    您得到了回复吗?

    我对该配置没有任何了解。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mitch、您能评论吗?

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

    您的设置与我的设置略有不同。 我使用 MSP-FET 工具将 FR2355板连接到 PC。 引脚(1.6 & 1.7)和 EVM 板是相同的。

    是的、您发布的软件(用户配置设置已注释掉)是我对电路板进行编程的软件。

    您的 RS232电路中是否有一个转换器、用于将 MCU 的 RS232电压转换为3.3V? 我认为 RS232电压范围可能超出 MSP 器件的规格。

    如果手头有 MSP-FET 工具、您可以尝试使用该工具吗?

    谢谢、

    Mitch
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我会这样做、但我不知道如何为此使用 MSP-FET 工具。 有机会可以打电话给我吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想我想知道您是如何连接它的:

    运行上述代码、然后使用以下代码运行 BSL_Scripter:

    模式 FRxx UART 9600 COM9
    详细
    TX_BSL_VERSION

    (COM9是我的 MSP 应用 UART 1)

    未返回数据。  

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

    您好、Don、

    从 MSP-FET 移除带状线时、您需要使用跳线将 MSP-FET 连接到 EVM。 使用引脚2 (VCC_TOOL)供电、引脚9用于 GND、引脚12用于 TX、引脚14用于 RX。  

    我还注意到您正在运行 TX_BSL_VERSION 命令。 这是一个受保护的命令、这意味着您需要在器件响应此命令之前提供 RX_password。 您是否可以尝试 change_baud 比率命令、而不是尝试 TX_BSL_VERSION 命令? 这不受保护。 此命令的一些格式示例包括:

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

    FR2355器件也具有超时功能。 当您测试 BSL 时、您可能需要在尝试发送 BSL 命令之前按下复位按钮、以确保器件能够接收 BSL 命令。

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

    好消息。  我让它可靠地工作。  最后。   我将在 LaunchPad 上下载工作、然后再确定它在我的硬件上不工作的原因。

    这是正确的 script.txt 吗?

    模式 FRxx UART COM20
    批量擦除
    延迟200
    RX_PASSWORD pass32_default.txt
    RX_DATA_BLOCK NVL NEW UART.txt

    此密码是否为:

    pass32_default.txt

    @FFE0
    FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF
    FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF


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

    太棒了! 我们正在取得进展!

    您的脚本看起来不错、但密码除外。 BSL 密码是从0xFFE0到0xFFFF 的中断向量中的数据:

    您可以通过在 CCS 中对器件进行编程(但不要运行该数据)来找到此数据、然后转到 View > Memory Browser。 您应该会看到如下所示的窗口:

    这是我在使用您提供的软件(注释掉用户配置)对器件进行编程时看到的数据。 您需要确保您的密码文件与此区域中的数据匹配。 我与您的代码一起使用的密码文件为:

    @FFE0
    46 80 46 80 46 80 46 80 46 80 46 80 46 80 46 80 46 80 80 46 80 80
    46 80 46 80 46 80 46 80 46 80 46 80 46 80 32 80

    您需要记住密码文件的端序。 首先输入低字节、然后输入高字节。 您可以看到我的最后2个数据字节(来自地址0xFFFE 和0xFFFF)是不同的、因为这是我的复位矢量数据。

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

    还有一个快速注释-您需要确保 RX_DATA_BLOCK 命令的 NVL 新 UART.txt 文件位于同一文件夹中:

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

    很抱歉中断该线程、但我一直关注这个问题、感到困惑。  就我的教育而言、如果您使用 Launchpad 而不是 MSP-FET 连接到 FR2355、为什么不需要 BSL-Scripter 模式行上的"奇偶校验"?  我认为只有 MSP-FET 和 Rocket 提供了芯片 BSL 所需的偶校验。  LaunchPad 是否也提供了该功能?

    我想同样的问题也适用于/Reset 和 Test 上的 BSL 硬件调用模式、我认为 MSP-FET 或 Rocket 提供了该模式、而不是 BSL-Scripter。  您如何使用 Launchpad 和 Scripter 实现这一目标?

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

    尊敬的乔治:

    我们不需要在 BSL-Scripter 模式行上进行"奇偶校验"、因为我们确实在使用 MSP-FET 工具。 抱歉、如果该问题在线程的前面未清除。

    我们的设置为:

    PC 通过 USB > MSP-FET 连接到 MSP-FET 通过跳线连接到 FR2355 Launchpad (跳线连接为 VCC、GND、TX 和 RX)。 因此、我们可以使用 MSP-FET 工具为 FR2355 Launchpad 供电。 与 FR2355 Launchpad 的所有 BSL 通信均通过 MSP-FET 完成。

    谢谢、

    Mitch

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

    谢谢 Mitch。  Don Harrison 也使用 MSP-FET 吗?

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

    我是。

    "奇偶校验"的需要来自哪里?

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

    您好、Don、

    BSL 器件通常以偶校验格式进行通信。 但是、我们不必在脚本中显式设置奇偶校验、因为 MSP-FET 工具会为我们处理这一问题。

    如果您想了解更多信息、请访问 BSL Scripter 用户指南的链接。 模式命令的详细信息在第2.4.1节中

    www.ti.com/.../slau655f.pdf

1 2