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.

[参考译文] 编译器/TMS470MF04207:TMS470MF04207如何在引导加载程序中将程序跳转到应用程序

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/655085/compiler-tms470mf04207-tms470mf04207-how-to-jump-program-to-application-in-bootloader

器件型号:TMS470MF04207

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

我在 bank1的 sector0中有一个引导加载 程序,bank0的 sector3中的应用程序,使用函数指针跳转至0x10000,然后转到 usage_FAULT 处理程序。

如何在没有任何故障的情况下跳转到应用程序。

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

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

    是的、但是当微控制器运行到  ((void (*)(void) 0x10000)()时、跳转到 BUS_FAULT 函数。我不知道哪里出错。

    应用程序项目的 cmd 文件,向量文件 flash0修改  为0x10000。这是对的还是不对的?

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

    很抱歉,我忘记了。 M3以 Thumb2模式运行、因此地址必须是奇数。 尝试:

    ((void (*)(void)) 0x10001)(); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们使用了0x10001、可以跳转到0x10000地址、但第二个调试调试调试调试器无法访问 flash.in CCS 错误信息

    CortexM3_0:GEL 输出:闪存的存储器映射设置@地址0x0CortexM3_0:GEL 输出:由于系统复位、闪存的存储器映射设置@地址0x0
    CortexM3_0:无法运行目标 CPU:(错误-1268 @ 0x1090001)器件锁定在硬故障或 NMI 中。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包6.0.407.3)
    CortexM3_0:文件加载程序:存储器写入失败:无法读取0x080001E8:执行状态阻止访问
    CortexM3_0:GEL:文件:C:\Users\Administrator\workspace_v6_2\xxxx_v0.1\Debug\xxxx_v0.1.Out:加载失败。

    我们有两个微控制器通过调试提示此错误信息、另一个微控制器可以正常调试。 我们想知道如何解决它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请阐明您无法再擦除哪些器件。 一个为0x10001、一个为0x10000。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有两个错误的 MCU、一个是使用旧 实验跳转到0x10008、一 个是使用新实验跳转到0x10001。   程序可以正常运行数次、但出现的十次或更多 程序 MCU 无法擦除。

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

    我很抱歉,但我仍然不清楚。 您是指 JTAG 无法擦除电路板、还是指引导加载程序无法正常工作? 您是指两个电路板有时无法擦除、还是10个电路板现在不再可用、因为它们根本无法擦除?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Vincent:
    我没有听到你的反馈。 我假设您已经解决了这个问题。 如果没有、请仅发布回复、如果此线程由于超时而锁定、请创建新线程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢、引导加载程序可以纠正跳转 应用程序、中断可以纠正跳转、少数坏 MCU 发生了变化。