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.

[参考译文] CC430F6137:自定义 BSL 映像的数据验证失败

Guru**** 2540720 points
Other Parts Discussed in Thread: CC430F6137, MSP430F5438A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/586597/cc430f6137-data-verification-of-custom-bsl-image-failed

器件型号:CC430F6137
主题中讨论的其他器件: MSP430F5438A

大家好、

我目前正在使用 CC430F6137 Micro、我正在为此修改定制 BSL 解决方案。 我将遵循 SLAA450D 应用手册。

但是、由于以下错误、我似乎无法从 CCS v6刷写已编译的版本:

MSP430:文件加载器:验证失败:地址0x0000000000001010的值不匹配请验证目标存储器和存储器映射。
MSP430:GEL:file:boot.out:发生数据验证错误、文件加载失败。

由于我使用 CCS v6、我必须修改参考源中的一些文件以适应编译器版本。  

CCS 提供的命令文件的更改基于器件专用数据表和 MSP430BSL 源代码的\CC430F614x_USCI_UART 文件夹中的链接器文件。

存储器

(笑声) 已提交标准分配...


ZAREA:origin = 0x1000,length = 0x0010
BSL430_VERSION_VENDOR:origin = 0x1010,length = 0x0001
BSL430_VERSION_CI:origin = 0x1011,length = 0x0001
BSL430_VERSION_API:origin = 0x1012,length = 0x0001
BSL430_VERSION_PI:origin = 0x1013,length = 0x0001
ZAREA_CODE:origin = 0x1014,length = 0x07DC
BSLSIG:origin = 0x17F0,length = 0x000C
JTAGLOCK_KEY:origin = 0x17FC,length = 0x0004

部分

(笑声) 已提交标准分配

ZAREA:{}> ZAREA
.bSL430_version_vendor:{}> BSL430_version_vendor
.bSL430_version_CI:{}> BSL430_version_CI
.bSL430_version_API:{}> BSL430_version_API
.bSL430_version_PI:{}> BSL430_version_PI
ZAREA_CODE:{}> ZAREA_CODE
.bSLsig:{}> BSLsig
JTAGLOCK_KEY:{}> JTAGLOCK_KEY

我希望任何人都能对此提供更多的见解。

此致

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

    MSP430编程器不能正确读取存储器的单字节段(仅限于一个字)、我建议您将所有 BSL430_version 位置分组为一个长度为4字节的单一定义。 用于 MSP430F5438A 的 CCS Custom_BSL 解决方案在 Custom_MSP430_BSL TI Wiki 页面上提供、可用作参考 :processors.wiki.ti.com/.../File:CUSTOM_BSL_APP.zip

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

    感谢您的回复、我将通读您提供的资源。 我听从了你的建议,但不幸的是,问题仍然存在。

    我将链接器文件存储器和段修改为4字节的单个空间。 我还相应地修改了源文件、将其修改为4个字节数组的单个声明、并添加了 DATA_SECTION 和 RETAIN pragma 语句。 但是、只有在不使用 RETAIN 语句的情况下、我才能成功上传 BSL 源代码。
    我在调试视图中验证了存储器、但它们没有修改为我初始化阵列的值。 以及 RETAIN pragma 可能需要的功能。

    我可以通过某种方式在工程属性中进行错误设置来阻止数据验证成功吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您不需要 RETAIN pragma、只需要如我提供的 custom_BSL 示例中所示的 DATA_SECTION。 确保 BSL430_Version 实际在代码内部使用(由 UART 发送)、否则优化器很可能会将其删除。

    此致、
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、按照提供的示例、这次解决了验证错误。

    显然、我在 Code Composer 中加载了一个不同的自定义 BSL 文件夹。 该命令解释器的版本8演示了 RETAIN pragma 的用法。

    感谢您的回答