2134174_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2134174_zh-CN

2134174_zh-CN

S32G3 引导加载程序用上市 core0 和 Core1

恩智浦的工程师们,你们好

我目前正在调试启动加载程序,以启动 core0 和 core1。core0 可以从 RESET 中释放并可以启动,但是 core1 无法开始运行。

使用 UDE 调试工具,可以成功调出 core1。在我的引导加载程序 EB 配置中,我已经为 core0 和 core1 配置了 RESET 处理程序地址和加载地址。我该如何进一步调试?如何调试引导加载程序?

我也在测试 IPCF_Example_multi_instance_S32G399A 项目,但这个项目的 core0 和 core1 都失败了。

谢谢。

Re: S32G3 Bootloader launch core0 and Core1

你好,@xlfd_1981

对您的不便,我深表歉意。

通常,在本社区板中,我们支持所有软件包的基本用法、恩智浦提供的硬件配置,此外,我们支持在软件包中使用演示/示例代码时直接出现的问题等。

对于特定或定制需求,我们通常建议通过 support.nxp.com 提交支持票据,因为这是一个私人渠道,更便于共享代码/项目。

目前,没有这样的演示可以直接支持你的要求,只有 AN1350 中的代码有点相似,但它也涉及 A53 内核,可以禁用 A53 部分来模拟你的请求,不确定你是否参考了它。

对于您的状态,为了直接帮助您调试问题,我建议您直接通过 support.nxp.com 发起私人票据,然后共享您的启动加载程序和应用程序(M7_0 和 M7_1),我们可以帮助您检查。


BR

切宁

Re: S32G3 Bootloader launch core0 and Core1

恩智浦专家

已经过去很多天了,我的问题仍然没有得到答复。现在让我们把问题简单化:请提供一个可以使用引导加载程序同时启动 core0 和 core1 的演示程序。我需要引导程序项目和应用程序项目。另外,请告诉我生成 blob 文件是否有任何特殊要求。我将使用您的演示来验证 core0 和 core1 能否正常启动。

我现在面临的问题是,core1 的映像可以加载,但 core1 就是无法启动。我不知道问题出在启动代码上,还是根本没有触发 core1。也没有寄存器可用于检查是否启动。请提供演示和建议以帮助我。这一点非常紧迫。非常感谢。

Re: S32G3 Bootloader launch core0 and Core1

你好,@xlfd_1981

感谢您的回复。

我能知道你是怎么创建 IVT 的,你在尝试从 QSPI 启动时加入了 DCD 吗?

我不太清楚您的设计,您是否使用引导加载器(M7_0)加载 core0.bin 和 core1.bin(IPCF)?实例)到相应的核心,还是其他类型的实现?


BR

切宁


Re: S32G3 Bootloader launch core0 and Core1

澄阴

我将调试结果更新如下、

可能与启动程序有关。使用 UDE 调试时,ELF 文件被下载到内存中,我们可以看到 Core1 区域有有效数据。然而,在电源循环(系统从运行引导加载程序代码的闪存启动)后,使用 UDE 观察 Core1 内存区域,我们发现数据已被清零。这可能是引导程序造成的吗?

此致


Re: S32G3 Bootloader launch core0 and Core1

澄阴

此外,请查看我的 IPCF 代码、

xlfd_1981_1-1752653795540.pngxlfd_1981_1-1752653795540.png

将被编译为 core0.bin 和 core1.bin

Re: S32G3 Bootloader launch core0 and Core1

切宁

我们目前正在RDB3 平台上开发基于您的IPCF 多核演示(v4.10.0)的引导加载程序。我们在Core1的启动过程中遇到了问题,感谢您的帮助。

当前设置:

  1. 我们的引导加载程序是根据您的演示项目(UM_BOOTLOADER_Rev_2023.02)开发的,并通过 EB 进行配置。
  2. 使用 UDE 调试时:
    • 数据同时存在于 Core0 和 Core1 内存区域中
    • 代码成功跳转到 Core0 的 Reset_Handler
  3. 然而,我们注意到
    • Core1 使用的 SRAM 区域(如 0x34680000)清零
    • 因此,Core1 无法启动

问题

  • 谁触发信号了这个 SRAM 清除?
    • 它是由 UDE 引起的吗?
    • 还是这是 RESET 行为的一部分?
    • 会不会是启动程序中的某些初始化代码造成的?
  1. 此外,在函数 Sys_StartSecondaryCores()中,我们设置了
IP_MC_ME->PRTN0_CORE1_ADDR = 0x34780000;

请确认该地址应指向何处:

  • 是否应该是 SRAM 中 Core1 映像的 加载地址 (即 .intc_vector 的位置)?
  • 还是应该是 向量表偏移量 (VTOR)

我们的链接器脚本显示 .intc_vector 位于 0x34780400,而图像从 0x34680000 开始。

非常感谢你们的支持!
如有需要,我可以提供 .map文件、.ld脚本或截图,以便进一步分析。

顺祝商祺!

Re: S32G3 Bootloader launch core0 and Core1

你好,@xlfd_1981

谢谢您的帖子。

您能否提供更多有关测试的信息?

1.它是在 S32G3 定制板上完成的,还是在 NXP 的 RDB3/EVB3 上完成的?

2.引导加载程序来自哪里?是定制的还是恩智浦的?如果是恩智浦的,是哪个版本?

3.文中提到使用了 core0&1,请问它们是 M7_0 和 M7_1 还是其他组合?

通常,引导加载程序运行在 M7_0 上,可以直接使用调试器进行调试,这与其他 M7 应用程序并无不同。


BR

切宁

Tags (1)
No ratings
Version history
Last update:
‎11-22-2025 12:02 AM
Updated by: