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.

[参考译文] AM263X-MCAL SDK:AM2634 LED 应用程序在刷写后仅运行一次 — 下电上电后不运行

Guru**** 2800955 points

Other Parts Discussed in Thread: AM2634, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1623773/am263x-mcal-sdk-am2634-led-application-runs-only-once-after-flashing-not-running-after-power-cycle

器件型号:AM263X-MCAL SDK
Thread 中讨论的其他器件: AM2634UNIFLASH

我能够构建代码并将其从 Code Composer Studio 上传到电路板。 LED 程序只会在我闪烁时运行一次。 但是、如果我对电路板进行下电上电、LED 闪烁应用程序不会再次运行。

我了解了 Texas Instruments AM2634 的引导模式、发现它支持多个引导选项、例如 QSPI 和 UART。 我假设从 IDE 编程到 LaunchPad 套件时、程序应存储在 QSPI 闪存中、在下一次上电复位时、AM2634 应根据引导模式选择引脚引导。

但是、我尝试了所有的引导模式、它们都不起作用。

此外、在为 LED 闪烁程序生成的二进制.out文件中、我只看到一个文件。 未.elf.hex生成或文件。 这可能是问题吗?

 image.png

 

 

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

    我将对 AM263x 11.01.00.19 使用 CCS 20.4.1 和 MCU+SDK。 LED 闪烁示例

    谢谢、

    Sai Kiran

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

    为 QSPI 选择、四路读取模式

    谢谢、

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

    尊敬的 Sai:

    建议的方法如下:

    如果使用 SDK 中的 Python 脚本进行刷写:

    1.将器件置于 UART 引导模式、对器件执行下电上电

    2.使用 default_sbl_ospi.cfg 文件运行 python 脚本(确保指向正确的 SBL 和应用程序映像、可以跳过 XIP 映像)。

    3. python 脚本完成后、将引导模式更改为 QSPI、 对器件进行下电上电

    如果使用 UniFlash 工具:

    1.将引导模式更改为 QSPI、 对器件进行下电上电

    2.连接 uniflash 会话、选择 sbl_OSPI_multiple_ELF 映像并选择 LED 闪烁.MCELF 映像并刷写映像。 在“Settings and Utilities“中、确保器件作为 LaunchPad 而不是 ControlCARD。

    3.成功刷新后,重启设备。

    请观看 AM263Px 的此视频培训、了解使用 UniFlash 工具的过程、该工具适用于不同器件、但该过程类似: https://www.ti.com/video/6362394255112

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    关于您提到的用于了解上传代码的方法和引导模式配置的选项、我已经尝试过这两个方法 UART QSPI 引导模式。 但是、我不熟悉您提到的刷写方法、例如使用 Python 脚本 或** TI UniFlash 工具。

    目前、我仅使用** Code Composer Studio IDE 中提供的刷写/调试选项。 构建工程后、我可以看到生成的 .out 源文件中找到。

    我正在使用闪存工程选项刷写软件。那么、您建议使用哪种方法? 我是否需要更改属性中的任何参数?

    选择 sbl_OSPI_multiple_ELF 映像并选择 LED 闪烁.MCELF 映像

    构建后、我只能在附加映像时看到.out 文件、我没有看到这种文件输出.MCELF 格式!

    请让我知道任何信息是需要从我的身边。

    谢谢、

    Sai Kiran

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

    尊敬的 Shaunak:

    我已经浏览过这个视频。 根据我的理解、在刷写过程中、电路板应处于 DevBoot 或 UART 引导模式、而不是 QSPI 引导模式。 编程完成后、我们可以将引导模式更改为 QSPI、以便程序在上电复位 (POR) 时自动加载。

    此外、这两种方法中都使用了相同的二进制文件:SBL 映像和应用程序映像。 请确认我的理解是否正确。

    目前、我正在使用 CCS 20.4.1 IDE 刷写程序。 这种方法是否可行、或者我们是否需要专门使用 TI UniFlash 工具来刷写到 QSPI?

    此外、我没有看到视频中显示的输出文件(例如.tiimage 和.appimage)是在 CCS 中生成的。 您能否澄清为什么这些文件没有出现?

    最后、我想再确认一点:
    AM2634 是否仅在正常启动期间从 QSPI 闪存加载应用程序? 除了更改引导模式(如 UART 或 DevBoot)之外、其他非易失性存储选项(如 SD 卡)是否支持引导、或者 QSPI 是否是唯一支持的外部引导器件?

    请澄清这些要点、以帮助我们避免混淆。

    谢谢。此致、
    Sai Kiran

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经观看了视频。 根据我的理解、在刷写过程中、电路板应处于 DevBoot 或 UART 引导模式、而不是 QSPI 引导模式。 编程完成后、我们可以将引导模式更改为 QSPI、以便程序在上电复位 (POR) 时自动加载。

    两个都工作正常。

    此外、在这两种方法中均使用相同的二进制文件—SBL 映像和应用程序映像。 请确认我的理解是否正确。

    是的、这两种方法都对 SBL 使用.tiimage、对应用程序使用.mcelf 映像。

    [报价 userid=“688460" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1623773/am263x-mcal-sdk-am2634-led-application-runs-only-once-after-flashing-not-running-after-power-cycle/6259910

    目前、我正在使用 CCS 20.4.1 IDE 刷写程序。 这种方法是否可行、或者我们是否需要专门使用 TI UniFlash 工具来刷写到 QSPI?

    此外、我没有看到视频中显示的输出文件(例如.tiimage 和.appimage)是在 CCS 中生成的。 您能否澄清为什么这些文件没有出现?

    [/报价]

    我建议使用 SDK 随附的 uniflash 工具或 python 脚本。 您可以找到该工具的 SDK 文档:
    Python 脚本: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/TOOLS_FLASH.html#TOOLS_FLASH_UART_UNIFLASH

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/GETTING_STARTED_FLASH.html

    SBL 的.tiimage 是在此处的 SDK 中预编译的:mcu_plus_sdk/tools/boot/sbl-prebuilt/am263x-lp

    我从 SDK 导入了 LED 闪烁示例、并且确实看到正在生成的文件、请求重新检查:

    1.如果是您的自定义应用程序? 如果是、则必须检查 makefile 以确保是否生成其他格式文件。

    2.您看到任何构建错误吗?  

    AM2634 是否仅在正常启动期间从 QSPI 闪存加载应用程序? 除了更改引导模式(如 UART 或 DevBoot)之外、其他非易失性存储选项(如 SD 卡)是否支持引导、或者 QSPI 是否是唯一支持的外部引导器件?

    您可以在此处找到引导加载程序的完整列表:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/EXAMPLES_DRIVERS_SBL.html

    我们还支持从 SD 引导:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/EXAMPLES_DRIVERS_SBL_SD.html

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    感谢您的答复。

    我从 TI 网站下载了 UniFlash 工具。 正如您关于上传方法的建议、我使用了 UniFlash 并将电路板保持在 QSPI 模式。 我从 SDK 中提供的预编译文件中选择了 SBL、并使用 led_blink.mcelf 文件对器件进行编程。 现在、该电路板能够在每次下电上电后从 QSPI 引导。

    我有一个问题。 在使用 UniFlash 工具对器件进行编程的视频参考中、提到电路板应保持在 DevBoot 模式或 UART 模式、对吧? 但是、我直接将电路板保持在 QSPI 模式、并按照您的建议对其进行编程、它可以正常工作。

    这是否意味着无需在使用 UniFlash 进行编程时将电路板保持在 DevBoot 或 UART 模式? 我的理解是否正确?

    [报价 userid=“534155" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1623773/am263x-mcal-sdk-am2634-led-application-runs-only-once-after-flashing-not-running-after-power-cycle/6259904

    如果使用 UniFlash 工具:

    1.将引导模式更改为 QSPI、 对器件进行下电上电

    2.连接 uniflash 会话、选择 sbl_OSPI_multiple_ELF 映像并选择 LED 闪烁.MCELF 映像并刷写映像。 在“Settings and Utilities“中、确保器件作为 LaunchPad 而不是 ControlCARD。

    3.成功刷新后,重启设备。

    [/报价]

    2.最后、我想知道为什么 CCS 提供“闪存工程“选项“ Ctrl+F5“、但无法刷写器件。 这是预期行为、还是可以使用此 CCS 选项直接刷写器件而无需单独使用 UniFlash?

    谢谢、
    Sai Kiran

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

    尊敬的 Sai Kiran:

    1.您可以使用 QSPI 模式本身、也可以使用 UART、两者都可以正常工作。 这是视频中的遗漏。

    2.我看到编译后错误。 这可能是您没有生成所有图像的原因。 请确保您已安装 Python、OpenSSL 和所有必需的 python 模块:
    http://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/SDK_DOWNLOAD_PAGE.html#INSTALL_PYTHON3

    请参阅 requirements.txt 文件以安装要求。

    3.让我检查一下,然后回来。

    此致、
    Shaunak

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [quote userid=“688460" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1623773/am263x-mcal-sdk-am2634-led-application-runs-only-once-after-flashing-not-running-after-power-cycle/6260271 最后、我想知道为什么 CCS 提供“闪存工程“选项“ Ctrl+F5“、但无法刷写器件。 这是预期行为、还是可以使用此 CCS 选项(而无需单独使用 UniFlash)直接刷写器件?

    尊敬的 Sai Kiran:

    对于 AM26x 器件系列、使用外部闪存时、CCS 闪存工程并不意味着要真正刷写它、而是将二进制文件加载到器件中。  

    虽然您可以在开发引导模式下将.out 加载到闪存中、但只有.xip 段 会保留、但整个.mcelf 不会被刷写。

    因此、请使用 uniflash 工具、外部闪存器或 SDK 中提供的 python 脚本来进行刷写。

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

    尊敬的 Shaunak:

    感谢您对此的支持。

    此致、
    S. Sai Kiran