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.

[参考译文] MSP430F5529:自定义 BSL 不可通过 IAR 和 FET 调试器调试

Guru**** 2595770 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1074665/msp430f5529-custom-bsl-not-debuggable-with-iar-and-fet-debugger

部件号:MSP430F5529
“线程:UNIFLASH测试”中讨论的其它部件

您好,

我已经按照“laa450g”中的说明构建了自定义 BSL,并尝试使用 IAR 调试器使用 FET430UIF 将其加载到 BSL Flash 区域。
下载代码时的 BSL 保护已关闭。 这失败了,我检查了有关该问题的线程 https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1048151/msp430f5438a-ep-command-line-interface-for-programming-msp430-flash-memory/3880772#3880772

我可以确认,即使使用 Uniflash,也无法下载 BSL 代码。

但是,可以使用 Uniflash 将 BSL 与我的应用程序一起刷新(如线程中所述)。

对这一限制的原因是否有新的见解?

我的第二个问题是关于调试,这似乎是完全不可能的。

重新启动 IAR 并选择“调试”而不下载,使我可以查看已编程的 BSL 部分,但只能部分查看。
0x1000到106D 之间的内存区域仅在拆卸视图中返回“---”。
断点可以在拆分视图(而不是 C 代码视图)中设置为 BSL 的各个段。 但是,这些都不会导致调试器停止运行。

调试 BSL 截面是否有通用块?

此致,

马丁·宾德里奇

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

    我不知道你的目标是什么。 如果您的目标是 USB BSL,则不可能从我的角度通过断点调试 USB。

    默认情况下,BSL 部分在设备重启后被锁定(类似于信息段 A)。

    当我在 CDC BSL (对于 MSP430F550x,它也应该适用于5529所属的 MSP430F551x 系列)上工作时,使用了主闪存(大小限制为2 KB,没有问题)和 RAM (完全不是 BSL 段)来进行开发。 启动代码从闪存复制到 RAM 并从 RAM 执行后,使用快速邮箱日志(与 UART 日志相同)。 当我100%认为一切正常时,代码从主闪存区转移到 BSL 段。 启动后,它仍从 BSL 复制到 RAM,并从那里执行。

    JTAG 保险丝位于 BSL 段的末尾,因此修改和调试代码不是我的一杯茶。

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

    你好,zrno soli,

    非常感谢您的快速响应。
    是的,我的目标是为 USB 通信创建自定义 BSL。 我同意将 BSL 代码移至应用程序闪存或 RAM 也可以解决我的问题。

    但是,我只是不明白为什么 BSL 代码段中的调试被阻止。 调试器可以设置为取消 BSL 保护。 这就是为什么我可以看到完整的 BSL 内存(在分解视图中有一些荒谬的限制)。 那么,什么实际上阻止了调试呢?

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

    不知道与 BSL 相关的调试限制。 出厂默认 TI HID BSL 中缺少什么,为什么需要定制版本?

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

    您好,

    建议在主闪存中完成自定义 BSL 开发,并仅移至内存的 BSL 部分进行最终测试/部署。 不支持调试直向 BSL 内存以进行开发。 请参阅 自定义 BSL 应用说明中的1.5 BSL 开发和调试部分。  

    此外,请记住,由于 USB 堆栈大小大于为 BSL 分配的2kB,USB BSL 与其他 BSL 实施相比有很大的不同和复杂。 USB BSL 实施在 BSL 区域中存储了 USB 堆栈和 BSL 实施的配对版本,用于启动和首次与主机通信。 然后,主机将完整的 USBN 堆栈和 USB BSL 下载到设备的 RAM 中,以获得全部功能。 如果开发自定义 USB BSL,建议只更改 USB BSL 的 RAM BSL 部分。  

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

    你(们)好,贾斯

    感谢您的澄清。 自定义 BSL 应用程序文档的第1.5.1章有点模糊,如最后一段所述,在 BSL 内存中测试代码的方法。
    我将继续测试 RAM 中的 BSL 代码,如果测试有效,请将其移至 BSL 内存。

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

    感谢你的帮助。 我需要定制 BSL,因为在我的产品上,通过密码保护 BSL 是不够的。