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.

[参考译文] TMDSCNCD263P:ECP:AM263P SBL 如何将控制移交到应用程序代码

Guru**** 2689775 points

Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579405/tmdscncd263p-ecp-am263p-how-sbl-handover-control-to-application-code

器件型号: TMDSCNCD263P
Thread 中讨论的其他器件: UNIFLASH

尊敬的团队:

您好。

我目前正在努力实现定制 SBL 工程、作为参考、我正在使用 SBL_OSPI_Multi Core_Elf 软件示例。

在该示例中、有与解析 ELF 文件、加载这些文件和复位相应内核相关的 API。 我注意到 SDK 的 SBL 示例调用了 “重置内核“ API。 您能解释一下为什么需要这个内核复位吗? 我想更详细地了解这种机制、因为这在实现我自己的 SBL 时会对我有所帮助。

在我的设计中、我计划处理内核初始化、存储器初始化、中断矢量初始化和所需频率的 PLL 配置、以便我的 SBL 和最终应用程序都以相同的时钟速度运行。 之后、我将使用最少的设置重新初始化 OSPI、解析多核 ELF、最后通过函数指针将控制权移交给应用程序。 这样、SBL 中完成的所有初始化设置都将保留。

之前、当我处理时 TMS570LS 我实现了类似的方法、即引导加载程序执行所有初始化、然后main()使用函数指针调用应用程序的函数。 由于我们在上运行代码、因此在该设置中未执行内核复位 内核 0 和内核 1 锁步模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在该示例中、有一些与解析 ELF 文件、加载这些文件以及重置相应内核相关的 API。 我注意到 SDK 的 SBL 示例调用了 “重置内核“ API。 [/报价]

    这是必需的。 一旦 SBL 使用应用程序矢量表覆盖自己的矢量表、就会使用自复位作为将控制权从 SBL 传输到应用程序的机制。 复位后、应用程序的入口点将标记应用程序代码执行的开始

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我的设计中、我计划处理所需频率的内核初始化、内存初始化、中断向量初始化以及 PLL 配置、从而使我的 SBL 和最终应用程序都以相同的时钟速度运行。 之后、我将使用最少的设置重新初始化 OSPI、解析多核 ELF、最后通过函数指针将控制权移交给应用程序。 这样、SBL 中完成的所有初始化设置都将被保留。

    您是否计划在 SBL 和应用程序中重复使用向量表? 还是计划覆盖向量表? MPU 和高速缓存设置的情况。

    只要在从 SBL 或应用切换控制时处理这些问题、就应该可以正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ]您打算在 SBL 和应用程序中重复使用向量表吗? 还是计划覆盖向量表? MPU 和缓存设置的情况。

    是的、我们计划在 SBL 和应用程序代码中重复使用向量表。

    SBL 和应用程序的 MPU 和高速缓存设置不同。

    那么如何处理呢?

    提前感谢...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“637661" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579405/tmdscncd263p-ecp-am263p-how-sbl-handover-control-to-application-code/6097534

    是的、我们计划在 SBL 和应用程序代码中重复使用向量表。

    SBL 和应用程序的 MPU 和高速缓存设置不同。

    那么如何处理呢?

    [/报价]

    这是应用级的注意事项;您需要自行处理。 这也不是我们在基准应用中做的事情。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SBL 和应用程序的 MPU 和缓存设置不同。

    为了确保这在 SBL 执行后对应用程序生效、您需要将内核复位、或者至少按照其余序列执行 MPU_init 和 CACHE_INIT。

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

    为什么要在示例代码中完成地址转换。 它的使用是什么、这是强制性的?

    该 API 内部发生了什么情况?

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

    我是否可以获得有关 mcelf 格式及其注释段和其他段文档的详细文档?

    在示例代码中、他们通过 mcelf 和 note 段结构进行解析、以了解我可以清楚地获得任何解释段结构成员的文档吗?
     

    他们在这个 API 中到底在做什么? 这是什么对齐以及他们尝试对齐的内容?

    提前感谢...

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

    尊敬的 Sanith:

    请注意、mcelf 是开放源代码格式。  有关 elf 格式的详细文档 —  https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/latest/exports/docs/api_guide_am263px/MCELF_LANDING.html

    有哪些关于句段结构成员的说明?
     [/报价]

    请了解 ELF 格式结构、这是一个开源标准。

    [引述 userid=“637661" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579405/tmdscncd263p-ecp-am263p-how-sbl-handover-control-to-application-code/6103852

    为什么要在示例代码中完成地址转换。 它的使用是什么、这是强制性的?

    该 API 内部发生了什么情况?

    [/报价]

    而有关 API 的顶层文档位于此处:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/latest/exports/docs/api_guide_am64x/bootloader__soc_8h.html#a18aa206338d7f792f43b5b15a28deaf9

    请花时间了解实施情况、以便更好地理解。

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

    您好:Nilabh、

    我移植了 SDK 示例代码以解析 ELF 文件并将其加载到自定义工程中。 在分步调试时、我到达了RCM_R5SS_Trigger_reset API、之后代码卡住了WFI汇编指令。

    WFI指令等待什么?我应该怎么做才能将其跳转到应用程序代码的复位处理程序?

    我执行了中的这些步骤 调试模式 。 这可能是导致该问题的原因吗? 在调试模式下无法实现这一点、我是否应该尝试在中运行它 释放模式 将我的定制 SBL 放置在闪存存储器中并执行 OSPI 8S 引导

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

    Nilabh Anand 你可以看看这个

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

    您好、

    在执行第 3016 行 FSM_TRIGGER 寄存器之前、您能否检查下面突出显示的寄存器的值?

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

     你好、 Nikhil Dasan 

    我在这里附加了屏幕截图、其中显示了这些寄存器值。

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

    Nilabh Anand Nikhil Dasan Hi 团队可以看看这个

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

    尊敬的 Sanith:

    我看到寄存器已解锁、因此对 RESET_FSM_TRIGGER 的写入应该已经完成。

    因此具体流程是、在解析 SBL 中的应用程序映像时、应用程序的复位向量会更早地加载到 TCMA 中、然后我们将写入其寄存器“FSM Trigger“、这将在到达 wfi 指令时触发 CPU 复位。  

    CPU 复位后、它会以应用程序的入口点(即 c_init00)开头。  

    如果您释放 SBL、然后在末尾连接内核并加载应用符号、请问您会观察到什么情况?

    此外、在 FSM 触发之前、您能否确认 0x0 位置中是否存在应用程序的复位向量?

    谢谢。此致、

    Nikhil Dasan

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

    你好、 Nikhil Dasan 

    自由运行我的自定义 SBL 代码后、我连接了内核并仅加载了应用符号、然后我看到代码在某个位置停止、下面附上了屏幕截图

    此外、在 FSM 触发之前、您能否确认 0x0 位置中是否存在应用程序的复位向量?

    我打开内存浏览器并检查了从 mcelf 文件正确复制的应用程序代码的 IVT、发现它已正确复制。

    为了交叉检查它是否正确,我看了 OBJ 转储文件的 mcelf 文件,为您的参考它附加了它下面

    在同一 OBJ 转储文件中、我检查了反汇编位置、它是 0x70057DA0、但反汇编指令差别很小。您可以查看下面的图像、并与反汇编映像进行比较(第 1 张图像)。

    提前感谢...

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

    Nikhil Dasan Nilabh Anand HI 团队可以查看此问题

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

    Nikhil Dasan Nilabh Anand 

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

    Helli Sanith,

    很抱歉耽误响应。 我们明天能否安排电话? 我没有任何建议、因此现场调试会有所帮助。
    请允许我知道你在哪个时区工作、以便我能够作出相应的安排。

    谢谢。此致、

    Nikhil Dasan

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

    是的 sureNikhilDasan ,

    我在印度时区工作 (GMT+5:30)、我的一位同事在美国时区工作 (GMT-8)。 我们需要安排一个适用于我们三个人的呼叫。 我的建议是在 IST 下午 5 点左右、因为这应该对每个人都很方便。

    如果您可以共享您的电子邮件 ID、我将通过电子邮件与您进行协调以安排呼叫。 或者、我可以通过一对一的私人消息向您发送我的电子邮件 ID、以便您与我联系、我们可以最终确定合适的时间。

    提前感谢...

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

    谢谢你。 已安排会议

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

    你好、 Nikhil Dasan

    根据我们的讨论、我处理了 PLL 问题、现在能够成功地从定制 SBL 跳转到 SDK Hello World 示例。 我通过观察终端上的 UART 打印结果确认了这一点。

    我的最终目标是使用 XIP 功能、因此我尝试加载 HelloWorld_XIP_FSS1 示例。 但是、控制将进入 HwiP 用户预取中止处理程序

    您能为我提供解决此问题的任何其他解决方案吗?

    提前感谢。

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

    Nikhil Dasan Nilabh Anand 您能研究一下这个问题吗

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

    尊敬的 Sanith:

    很抱歉耽误响应。

    它会达到的主要功能  HelloWorld_XIP_FSS1  示例?

    您是否可以将变量“loop"设置“设置为 0 并逐步退出循环以查看其来源?

    谢谢。此致、

    Nikhil Dasan

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

    你好、 Nikhil Dasan 

    否、控制未到达的主要功能 HelloWorld_XIP_FSS1 示例。

    可能在“Hwip_armv7r_vectors_nortos_asm.S"文件“文件中的入口点“_vectors:“之后、我猜它将进入 prefetch_abort_handler。

    我在主函数中保持无限循环、但它不会命中主函数。

    有关函数调用层次结构、请参阅上面的屏幕截图

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

    你好 Nikhil Dasan Nilabh Anand 可以任何人来看看这个  

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

    尊敬的 Sanith:  

    您是否可以在应用程序示例中检查是谁导致了中止? 如果它未到达 MAIN、则可能发生在启动代码本身中。 此外、您是否能够启动一个正常的 hello world 示例(其中没有 XIP)?  

    另外、您能告诉我您是如何测试这个示例吗?

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否在应用程序示例中检查导致中止的原因。 如果它未到达 MAIN、则可能发生在启动代码本身中。 此外、您是否能够启动一个正常的 hello world 示例(其中没有 XIP)?  [/报价]

    你好、 Aswin Sankar 

    Hello world XIP 示例未到达其 main、我想在启动代码中会触发此异常。 我能够启动没有 XIP 的正常 hello world 示例、它按预期运行良好。

    此外、您能告诉我您是如何测试此示例的?

    我已经使用 UNIFLASH 工具从 SDK 示例中加载了我的定制 SBL 工程的 tiimage 和 hello world 示例工程.mcelf 映像。 然后、我选择引导切换到 OSPI 引导模式、并可以看到“Hello world“控制台打印。

    接下来、我 使用 uniflash 工具加载了“hello world Xip“示例工程的 mcelf 和 mcelf_XIP 文件、然后将引导引脚更改为 OSPI 引导模式并打开电源、我没有看到任何控制台打印、然后使用去抖器我加载了符号、我看到控制权卡在预取中止处理程序中。

    在该函数调用层次结构中、它显示“Hwip_prefetch_abort_handler + 0x1C“-->“Hwip_prefetch_abort_handler_c"-->“-->“Hwip_user_prefetch_abort_handler_c"。“。

    然后、我确认它没有到达 main、在启动代码执行期间、它将进入预取中止处理程序

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

    尊敬的 Sanith:

    您能否在启动代码的开头放置一个无限循环、然后刷写示例并加载符号。 完成后、通过将循环控制变量设置为 0、然后通过调试、您能否检查中止发生的位置。  

    这是一种预取中止、大多数情况下、这是由于某些错误的指令执行而发生的。

    此致、

    Aswin

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

    你好。  

    由于我们无法看到中止的来源、因此需要进行此练习。 这将有助于我们提供中止来自何处的线索。 您还可以检查 CP15 寄存器、这些寄存器会提供有关中止源、类型等的详细信息

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否在启动代码的开头放置一个无限循环、然后刷写示例并加载符号。 完成后、通过将循环控制变量设置为 0、然后通过调试、您能否检查中止发生的位置。  [/报价]

    我尝试保持无限循环(以汇编语言)、并通过保持在 OSPI 引导模式来运行代码、

    但控制没有在启动代码停止。 我不知道为什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于我们看不到中止的来源、因此需要进行此练习。 这将有助于我们提供中止来自何处的线索。 您还可以检查 CP15 寄存器、这些寄存器将包含有关中止源、类型等的详细信息。

    我有 CP15 系统寄存器

    指令错误地址是“0x8000000 “,我不知道为什么它试图执行此地址.

    但在存储器映射文件中、存储器范围为  

    在构建 Hello World XIP 应用之前、我在 devCONFIG.MAK 文件中更改了 XIP 范围

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

    Nikhil Dasan Aswin Sankar 你能看看这个

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

    尊敬的 Sanith:  

    在映射文件中、闪存范围为 0x6000 0000 和 0x8030 0000。 在 devconfig.mak 中、范围为 0x8000 0000。 可以看到您尝试使用 0x8000 0000 闪存范围。  

    您能告诉我 mcelf XIP 文件的大小是多少吗? 另外、我是否可以确认您是否同时刷写了 mcelf 和 mcelf_XIP 文件?

    此致、

    Aswin

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

    尊敬的 Sanith:

    此外、对于 SDK SBL、您能否检查新的 hello world XIP 示例是否正在引导?

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“637661" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579405/tmdscncd263p-ecp-am263p-how-sbl-handover-control-to-application-code/6149836

    我尝试保持无限循环(以汇编语言)、并通过保持在 OSPI 引导模式来运行代码、

    但控制没有在启动代码停止。 我不知道为什么。

    [/报价]

    你是不是也在逗我?“

    此代码是库的一部分。 您需要这样做。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    指令错误地址是“0x81000000 “,我不知道为什么它试图执行此地址。

    此地址中是否存在任何指令。 也在 MPU 中闪存区域是否具有缓存、读取访问和代码执行属性?

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在映射文件中、闪存范围为 0x6000 0000 和 0x8030 0000。 在 devconfig.mak 中、范围为 0x8000 0000。 我可以看到您正在尝试使用 0x8000 0000 闪存范围。

    我还没有修改任何内存区域及其范围、

    是、对于 XIP、这些器件使用 FSS 区域 1、该区域为 0x80000000 闪存范围。

    .meclf_XIP 文件大小为 21KB、.mcelf 文件大小为 6KB、我将使用 UNIFLASH 工具刷写这两个文件

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

    我尝试使用 SDK SBL 执行 hello world XIP SDK 示例、相关内容按预期运行、我可以在 UART 控制台上看到打印内容。

    [引述 userid=“642990" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1579405/tmdscncd263p-ecp-am263p-how-sbl-handover-control-to-application-code/6151628

    你是不是也在逗我?“

    此代码是库的一部分。 您需要这样做。

    [/报价]

    修改启动代码后、点击“rebuild the full project(重建整个工程)“、希望也会构建库。 如果不是、请分享以下内容

    如何重建库,是否有精子方法要建立,如果你有任何工作指导文件如何建立 lib,请分享这些或至少分享步骤如何建立 libs。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此地址中是否存在任何指令。 此外、在 MPU 中、闪存区域是否具有缓存、读取访问和代码执行属性?

    此地址 (0x81000000 ) 没有指令,该地址甚至没有在链接器文件中初始化。{in 链接器文件 FLASH_FSS1  : origin = 0x80300000 , length = 0x800000 }

    在内存浏览器中显示? 标记为 0x81000000 位置。

    到目前为止、所有与 MPU 相关的配置在我的自定义 SBL 项目中跳过、我想继续使用默认 MPU 配置。

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

    您是否能够在放置无限 while 循环后执行启动代码?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否能够在放入无限 while 循环后执行启动代码?

    即使在启动代码中保留循环、它仍将进入预取中止处理程序。

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

    阿斯温·桑卡尔 可以看看这个

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

    嗨、Sanith。


    观察到、控制甚至没有到达复位矢量、因为在此之前会发生中止。 所以在这种情况下可能解析不正确。  

    您能否使用 SDK 开箱即用 SBL 执行示例并转储应用程序将占用的 RAM 区域。 应用程序占用的 RAM 区域为 0x70040000。  

    同样、我们可以对自定义 SBL 执行相同的操作并比较转储。 这将为我们提供一条线索。

    此致、

    Aswin

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

    你好、 Aswin Sankar 

    我使用 SDK OSPI_SBL 和我的自定义 SBL 工程执行了 SDK 的 Hello World XIP 示例。 以下是存储器浏览器屏幕截图

    1) SBL: — SDK 的 OSPI_Multiplece_SBL 和应用:SDK 的 hello world XIP 示例工程

    内存浏览器屏幕截图  

    2) SBL: — My Custom SBL 工程、Application:SDK 的 hello World XIP 示例工程

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

    尊敬的 Sanith:  

    您是否以相同的方式在实例上刷写图像? 我可以看到自定义 SBL 屏幕截图中的闪存区域为 0。 是否正在使用相同的图像?  
    此外、您正在 SBL 末尾启用 DAC、PHY 和 PHY 流水线。 您还能否检查 OSPI 关闭序列是否与 SBL 的序列相同。 SBL 不应关闭 OSPI 接口即可使 XIP 正常工作。

    此致、

    Aswin