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.

[参考译文] TMS320F28379S:将 SCIBOOT 模式更改为使用备用 IO

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/795123/tms320f28379s-change-sciboot-mode-to-use-alternate-io

器件型号:TMS320F28379S

在引导至 SCI (GPIO72=1、GPIO84=0)进行闪存编程时、如何将器件配置为使用备用 IO 配置(GPIO 2829)、然后在随后通电时从闪存引导(GPIO72=1、GPIO84=1)?

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

    尊敬的 Andrew:

    请参阅 第4.4节、标题为:在 TRM 中配置引导模式引脚。

    TRM 可从 以下网站获得:http://www.ti.com/lit/ug/spruhx5f/spruhx5f.pdf

    谢谢!

    Krishna

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Krishna、感谢您的回复、感谢您在这一问题上提供的所有帮助。 但是、我的问题与如何更改用于引导加载和随后加载闪存的 sci 端口引脚有关。 具体而言、我想将引导加载程序在 SCI 模式下使用的默认 sci_a 引脚从 gpio85和 gpio84更改为 gpio28和 gpio29。 我确实在技术参考手册中看到了这是如何完成的、但不确定在更改后引导是否类似、即 UC 是否仍能够从闪存引导。
    此致、
    Andy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andy:

    请确认您要执行以下操作:
    1.使用 SCI 引导模式、然后使用 SCI 端口对闪存进行编程。
    2.您希望将 SCI 引导的引脚从默认设置更改为备用引脚、并且您知道如何根据第4.4节-在 TRM 中配置引导模式引脚的说明执行此操作。
    对闪存进行编程后、您希望在每次后续引导时从闪存引导。
    4.如果需要更新闪存、您希望再次从 SCI 引导并更新闪存。
    然后、您需要执行步骤3。

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

    是的、没错、感谢 Krishna 的帮助。

    -Andy

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

    谢谢! 好的、您可以考虑以下想法。

    1.为 SCI 引导配置目标
    2.通过 SCI 将应用程序编程到闪存中
    3、编程完成后、跳到 Flash 中应用程序的入口点、启动应用程序。

    您可以考虑开发一个简单的监控程序、该程序会提出一些简单的问题。
    启动时、监护仪会等待预定的用户输入时间(例如5秒)
    以查看是否有在闪存中进行应用更新的请求。 如果是、则更新闪存
    并启动应用程序。

    如果答案为“否”或没有响应,则显示器只会启动现有应用程序
    如果闪存中有一个编程的闪存。 如果闪存中没有应用程序、它将继续在监视器中等待。
    这是一个执行非常简单任务的非常简单的监视器。

    您可以考虑为您的设计提供其他想法。 例如、5秒启动延迟可能是不可接受的
    系统的所有组件。 在这种情况下、一旦将应用程序编程到闪存中、您只需启动应用程序
    立即启动。 如果选择此选项、则如何在以后更新闪存? 地址
    将来更新时、应用程序将需要通过某种方式支持接受用户命令以返回
    因为有一个挂起的闪存更新。

    另外请记住、在对闪存进行编程时、必须以与您相同的方式设计方法
    切勿“砖头”:-)目标/产品。 这意味着、执行闪存更新时出错不应导致
    目标/产品中的永久性故障。 您应该始终能够恢复。

    那么、让我们稍微定义一下潜在的问题。 我们假设您的应用无法承受5秒的延迟
    启动时、您决定显示器将在启动时立即启动应用程序。
    您设计了应用程序中的必要挂钩、以便它知道如何返回监视器来执行
    未来可能进行的闪存更新。 将来的某个时候、您会使用此方法并执行闪存更新。
    除了这一次、编程期间会出现某种问题(电源干扰或其他问题)、
    在更新过程中、闪存更新失败。 编程会停止、您认为编程已经完成
    更新。 重启目标电源后、应用程序会立即启动、但会丢失部件
    执行。 您无法命令应用程序返回到监视器,因为
    应用程序不再按设计工作。

    我将留给您思考如何从这类问题中恢复的方法。

    我希望这种反馈足以激发人们对如何进行系统设计的思考。
    请随时询问您是否需要进一步的帮助。

    谢谢!
    Krishna
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很好、感谢 Krishna 的帮助。 我希望我在技术参考中遗漏了一些东西、并且我可以使用 OTP BOOTCTRL 寄存器"暗示"更改默认的 sci Rx/TX 引脚、并且引导模式行为将是相同的。 我想情况并非如此。 周末愉快!
    此致、
    Andy