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.

[参考译文] 软件复位问题

Guru**** 2393725 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1507219/software-reset-issue

器件型号:TMS570LC4357

工具/软件:

你(们)好

我正在使用 Tms570LC4357引导加载程序、在引导加载结束时、它应在复位后跳转到其他地址  

我使用了系统寄存器来实现这一点。

SYSECR=(0×10)<<14

当我使用此软件通过写入系统寄存器进行复位时、它不会跳转也不会复位。

但当我尝试看门狗复位计数器时、它会复位。

应如何进行软件复位?

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

    尊敬的 Geetha:

    Unknown 说:
    SYSECR=(0×10)<<14

    您写入的位不正确、我们应该写入0x0、0x2或0x3以进行软件复位。

    您可以在以下链接中找到示例工程:

    (+)[常见问题解答] RM57L843:RM57L843上的软件复位-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    以上示例不能直接使用、但可以复制 main 函数代码并在应用中使用。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    我尝试执行上面的示例、但仍然无法解决问题、在 SYSECR 寄存器的 RESET 位中写入0、2或3时、它不会复位  

    看到 SYSESR 寄存器时、它显示0x800、这意味着软件复位但未设置

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

    尊敬的 Geetha:

    我还在上一个主题中提到了软件复位的验证程序、您是否遵循了相同的方法。 因为我已经测试过它、所以它应该可以正常工作。

    此外、如果您使用看门狗复位或任何其他复位、请勿执行这些操作、因为它们可能会在发生软件复位之前进行复位。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    我试着处理你在示例中给出的线程,当我给寄存器分配软件复位值时,它很好,它看起来和线程中给出的一样

    我需要使用该复位才能跳转到另一个地址。 此时、它不起作用

    我已经给出了  

    SYSECR=0x8000

    并且我没有使用任何其他复位

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

    尊敬的 Geetha:

    我对延迟回复表示歉意、我休息了几天、没有机会进一步解决这个问题。

    [报价 userid="649502" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1507219/software-reset-issue/5792339 #5792339"]

    我需要使用该复位才能跳转到另一个地址。 此时、它不起作用

    我已经给出了  

    SYSECR=0x8000

    [/报价]

    什么意思是它不起作用? 您遇到的错误是什么? 是什么让您认为它不起作用?

    如果您提供一些非常有用的屏幕截图。

    在代码的任何部分、如果您编写"SYSECR=0x8000"、它都应该重置控制器、那么就不会对内核的执行位置产生任何依赖。

    唯一要确保的是您应该在特权模式下写入。

    --
    此致、
    Jagadish。