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.

[参考译文] TMS320F280039C:使用 SCI-B 端口的 SCI 引导加载程序

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F280039C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1282709/tms320f280039c-sci-bootloader-using-sci-b-port

器件型号:TMS320F280039C

您好!

我们有一个使用 TMS320F280039C 微控制器构建的定制卡。 我们需要使用此卡上的 SCI 引导加载程序。 但我们将 SCI-B 端口用于我们的项目、而 SCI-A 端口未被使用。 在所有文档中、我看到 SCI-A 端口被用于 SCI 引导模式。  

是否有方法可以将 SCI-B 端口用于微控制器的 SCI 引导模式? 我想我可以修改器件示例中的引导加载程序以使用 SCI-B 端口、但在我看来、这可能不够。 或者、这种情况是否有任何权变措施? 当我们将器件调整为使用 SCI 引导模式时、它是否会自动尝试使用 SCI-A 端口并从那里等待字符?

提前感谢。

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

    您好、Ege、

    我必须在第二天内回复您、以便作出回应。

    谢谢。此致、

    查尔斯

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

    您好、Ege、

    作为更新,要将 SCI-B 端口用于 SCI 引导模式,您必须使用 SCIB_BASE 的定义 此寄存器位于0x7210。  

    您还需要在  sciPinMuxOption()中将引脚更改为 SCI-B 兼容。  默认情况下、器件上的 USB-UART 连接与 SCI-A (GPIO28/GPIO29)共享通信线路。 在更改 SCI-B 的引脚时、您可能需要将跳线连接到 GPIO28/29以进行字节传输。

    调整 SCI 引导模式时、器件将尝试使用 USB-UART 连接内联的任何 GPIO 模式选项。  

    谢谢。此致、

    查尔斯

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

    嘿、Charles、感谢您的回答。

    问题是、我们没有任何来自 SCI-A 端口的输出、因此无法使用跳线将其连接到 SCI-B 端口。  

    不妨设想一下、是否可以将"flash_kernel_ex3_sci_flash_kernel"示例中的代码添加到我的项目中、并在开始时通过检查 GPIO 引脚而不是修改引导模式将其分支到该项目中? 这样是否能够使用 SCI 端口发出的新程序重写闪存内容?  

    谢谢。

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

    您好、Ege、

    如果引导模式保持不变、则默认 SCI-boot 将仍使用 GPIO28/29来接收来自主机编程器的数据。  

    >"首先通过检查 GPIO 而不是修改引导模式来使其分支到该分支"

    您是说内核示例是否已加载到器件中? 虽然它能够在那里分支、但仍然无法 在 GPIO 引脚上看到数据作为 来自主机编程器的传入数据。 要检查此情况、您可以实现分支并检查 SCI-B RXBUF 寄存器中是否存在器件上任何传入的数据。

    谢谢。

    查尔斯

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

    嗨、Charles、

    是的、我的想法是基本上使用我的应用程序加载内核示例。 我将尝试修改该示例、以使用 SCI-B 端口、而不是默认的 SCI-A 端口。 然后、当应用启动并跳转到内核示例时、我将通过 SCI-B 端口发送应用的新版本(同样、包括内核和我的原始应用)。 我想我将使用这些示例中使用的.txt 文件。

    这种方法是否有工作机会?

    谢谢。

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

    您好、Ege、

    是的、但是对于内核示例、如果您不想每次都下载该示例、则可以驻留在闪存的一部分中。  您似乎在描述实时固件更新。 此更新是否必须对您的项目生效或失效?  

    此致、

    查尔斯

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

    嗨、Charles、

    从技术上讲、不需要进行实时固件更新。 由于单元上缺少 SCI-A 端口、因此它根本不是必需的。 但是是的,每次下载内核将是冗余的。  

    谢谢。

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

    顺便说一下、我还有另一个关于 SCI 的引导 ROM 代码的问题。 修改引导模式引脚后、有一个内部代码会激活 SCI-A 端口、对吧? 此代码始终驻留在器件的闪存中。  

    是否有办法修改此代码段以激活 SCI-B 端口而不是 SCI-A 端口并从此处加载内核?

    谢谢。

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

    您好、Ege、

    修改该 引导 ROM 代码的一种方法是将器件的 OTP 值编程为使用 SCI-B 端口。 请注意、执行此操作将是  永久性 器件的引导引脚。  

    谢谢。此致、

    查尔斯

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

    您好、这有相应的指南或示例吗? 或应用手册?

    我看到的只有更改引导模式引脚以及这些引脚参考的引导模式。 我没有看到任何会修改启动代码的内容。

    谢谢。

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

    您好、Ege、

    修改引导加载程序代码本身会需要对器件的 ROM 进行重新编程、这本身可能不可行。 以下是有关更改 bootROM 起始位置的相关主题、可以将起始位置更改为 SCI-B 加载程序。  

    (+)_c_int00 -是否可以指定这种情况、以使入口点始终位于指定地址? - C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    谢谢。

    查尔斯