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.

[参考译文] TMS570LS3137:在闪存中有两个程序映像

Guru**** 2589280 points
Other Parts Discussed in Thread: TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1053584/tms570ls3137-having-two-program-images-in-flash

器件型号:TMS570LS3137

您好!

我的客户询问 TMS570LS3137在闪存中是否可以有两个单独的程序映像。
当程序切换时、他猜测的复位矢量需要重新映射。
器件是否支持此功能?

BTW、闪存可由不同闪存组中的程序擦除/编程、对吧?

谢谢、此致、
田志郎一郎

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

    尊敬的  Koichiro San:

    是的、您可以将两个或更多应用程序映像编程到 TMS570闪存中。 但在闪存(0x00000000)的开头有一个复位异常向量表。 它没有 VTOR 寄存器来 重新定位矢量表。

    [引用 userid="97804" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1053584/tms570ls3137-having-two-program-images-in-flash ]BTW、闪存可由不同闪存组中的程序擦除/编程、对吧?
    [/报价]

    是的。 您可以通过从组1执行代码来擦除闪存组0、或者通过从组0执行代码来擦除闪存组1。  

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


    它说、"它没有 VTOR 寄存器来重新定位矢量表。"
    如果没有重映射功能、如何切换复位异常向量表?

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

    我可能会误解您。 我的理解是、闪存中有一个引导加载程序和两个应用程序。 复位后、执行引导加载程序、它将根据来自 UART 输入或 CAN 消息的命令跳转到其中一个应用程序。  

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

    我了解跳转函数。

    如果软件类型 A 和类型 B 都有矢量表、我认为有必要重新映射矢量表以切换包含矢量表的软件。
    如果没有 VTOR 寄存器、如何切换包含矢量表的软件?

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

    您必须使用以下命令手动跳转到应用程序:

       ((void (*)(void)) g_ulApplicationAddress)();  

    应用程序地址的前20个字节是应用程序的异常矢量表。

    但是在复位后、会调用0x00000000处的异常向量表。