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.

[参考译文] RTOS/PROCESSOR-SDK-AM335X:缓慢 SPI 引导

Guru**** 2618835 points

Other Parts Discussed in Thread: AM3352, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/641299/rtos-processor-sdk-am335x-slow-spi-boot

器件型号:PROCESSOR-SDK-AM335X
Thread 中讨论的其他器件:AM3352SYSBIOS

工具/软件:TI-RTOS

各位专家:
 
我们正在使用  AM3352开发产品。 我们遇到了有关启动时间过慢的问题。
将 SPI 输出频率从24MHz 更改为48MHz 后,从 SPI 闪存加载7MB 应用程序映像的时间得到了改善,但仍需要30秒(原始映像需要56秒)。
如何改进?
我们 发现引导加载程序不使用 DMA 来加快加载时间。  您能否为我们提供具有 DMA 访问权限的引导加载程序源代码?  
2. AM3352是否能够使用 QSPI?
 
将应用程序映像加载到内存后、我们的器件将打印"跳转到 StarterWare 应用程序..." 然后等待30秒、然后再执行应用程序代码。
为什么设备等待30秒? 如何改进?
 
谢谢!!
 
此致、
等等
 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们不在引导加载程序代码中使用 DMA 从任何引导介质引导、目前没有计划在引导加载程序代码中实现这一点。  如果这是您的系统要求、我们建议使用 SDK 中的 SPI LLD 驱动程序、该驱动程序支持使用 EDMA 来加快引导过程。

    您是否确定由于 SPI 传输速度而导致的引导时间为30秒、而不是其他情况。 这位于定制板或 TI EVM 上。

    SPI 是否是 SYSBOOT 引脚设置方式中的第一种引导模式? 如果没有、则需要配置平台 SYSBOOT 引脚、以便 SPI 是它尝试从其引导的第一个引导模式。 如果在 SPI 之前配置了 UART/Ethernet 或任何其他外设引导模式、则 ROM 引导加载程序将首先检查其他引导模式、然后再在 SPI 闪存上查找映像。 此器件上没有 QSPI 外设仅 AM437x 和 AM57xx 器件支持 QSPI 引导。

    [报价用户="Eten Wu">在将应用程序映像加载到内存后、我们的器件将打印"跳转到 StarterWare 应用程序..." 然后等待30秒、然后再执行应用程序代码。

    您需要使用 SBL 代码调试此问题。 将引导加载程序和应用程序刷写到闪存中之后。 您可以使用仿真器和 GEL 文件连接到 A8内核、并加载 pdk_am335x_1_0_x\packages/ti\starterware\binary\bootloader\bin\AM335x-evm\gcc\bootloader_boot_boot_mcspi_a8host_debug.out、然后单步执行代码以查找导致30秒延迟的原因。  

    此外、请注意、如果您有堆和未初始化的存储器段、则应向这些段添加 NO_LOAD 选项、否则编译器将仅传输一系列零。 请查看此选项以消除加载堆:

    https://e2e.ti.com/support/arm/sitara_arm/f/791/p/604616/2225826

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

    感谢您的支持!!

    向堆段添加"no_load"选项后、30秒延迟消失。
    在使用 EDMA SPI 的引导加载程序之前、我尝试减小应用程序二进制文件的大小。
    因此、我对如何知道"app"实际二进制大小有另一个问题。
    我发现文件"CONFIG_AM335x_A8.BLD"中定义的 app_code_size 以及该值也是"app"二进制大小。 但我认为我的应用程序的二进制文件大小应该小于该大小。

    是否有任何文档描述".bld"文件格式和".cfg"文件格式?

    谢谢~

    此致、
    等等
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您确认未加载堆可以解决慢启动问题。 是否可以将原始问题标记为已解决。

    与 config.bld 和.cfg 相关的问题与 XDC (RTSC 工具)以及 SYSBIOS 内核如何管理编译配置有关、因此需要不同的专家组来帮助您。

    概括地说、为基于 BIOS 的构建维护 CONFIG.bld 和.cfg 文件:
    processors.wiki.ti.com/.../BIOS_Getting_Started_Guide

    processors.wiki.ti.com/.../BIOS_Getting_Started_Guide

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

    感谢您的信息!!
    我是否可以参考"sourceforge.net/.../"中的"examples/evmAM335x/mcspi_edma"项目 来启用引导加载程序 EDMA?

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

    如果您希望使用 Mspi 的 EDMA 实现,则可以使用该示例作为参考。 另一个需要检查的问题是、在引导加载程序代码中启用了高速缓存和 MMU。

    此致、
    Rahul