各位恩智浦的同事们,大家好:
我们准备在 S32G274A 芯片中使用多核来运行程序,使用 A53 运行 Linux,使用 M7 运行 LLCE_CAN。
根据 5.2,我们参考了“使用 S32G2 平台软件集成在 S32G2 上启用多核应用程序”。配置引导加载程序,安装推荐的软件包,并按照步骤进行配置。
zhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.pngzhipeng_7-1786181958976.png
5.3 中有错误。在编译过程中构建引导加载程序。
launch.bat 文件已被编辑。
zhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.pngzhipeng_0-1786182860528.png
运行 launch.bat 后发生错误。
zhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.pngzhipeng_0-1786180508617.png
在注释掉相关代码之后。
zhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.pngzhipeng_5-1786181360466.png
zhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.pngzhipeng_2-1786180921774.png
我找到了 CryptoDal.h安装目录中的文件。
zhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.pngzhipeng_4-1786181305215.png
zhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.pngzhipeng_6-1786181450684.png
哪里可能会出错?
谢谢。
嗨,志鹏
对于您的问题,如果添加以下内容,是否会出现错误?注释掉这段代码不会导致错误吗?
Joey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.pngJoey_z_0-1786328574726.png
BR
乔伊
嗨, @Joey_z
是的,添加后,第三张图片上会显示“未声明”。
注释掉该行后,第五张图片将显示“没有该文件或目录”。
zhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.pngzhipeng_1-1786347067301.png
“CryptoDal.h”位于 D:\NXP\Integration_Reference_Examples_S32G2_2022_06\code\framework\realtime\bsw\dal\cryptodal\generic\include
“Hse_Ip.h”位于 D:\NXP\SW32G_RTD_4.4_3.0.2_HF01\eclipse\plugins\Crypto_TS_T40D11M30I2R0\include 目录下。
我在各自的文件夹中找到了这两个文件,并且 launch.bat 中也写入了文件路径。
目前的问题似乎是编译过程中没有包含插件路径。
BR
嗨,志鹏
配置中是否启用了安全启动?尝试启用安全启动,看看问题是否会消失。
Joey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.pngJoey_z_2-1786353784256.png
BR
乔伊
嗨,志鹏
谢谢你提供的信息。
您能提供更多信息吗?
1.您是否只在A核上启动ATF和uboot?A核的UART有任何输出吗?
2.M核心功能是什么?是关于UART/CAN功能吗?
BR
乔伊
嗨, @Joey_z
之前的引导加载程序编译成功。现在,我已经将镜像写入 或非 闪存,启动后,UART 上没有任何输出。
我指的是 AN13750。以下是我的操作步骤:
我按照“S32G2_LinuxBSP_42.0_User_Manual.pdf”中的说明操作,并在 Ubuntu 20 中安装了 u-boot bsp42.0-2022.04 和 ATF bsp42.0-2.10。
我修改了 s32_mmc.c以及根据 0001-fip-align-and-mmc-init.patch 的 s32_common.mk。
zhipeng_0-1787646642108.pngzhipeng_0-1787646642108.pngzhipeng_0-1787646642108.png志鹏_0-1787646642108.png
zhipeng_1-1787646670172.pngzhipeng_1-1787646670172.pngzhipeng_1-1787646670172.png志鹏_1-1787646670172.png
zhipeng_2-1787646683855.pngzhipeng_2-1787646683855.pngzhipeng_2-1787646683855.png志鹏_2-1787646683855.png
我编译了 u-boot 和 ATF。
make CROSS_COMPILE=/opt/S32G/arm-gnu-toolchain-11.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=aarch64 PLAT=s32g274ardb2 BL33=../u-boot/u-boot-nodtb.bin
Image Layout
DCD: Offset: 0x200 Size: 0x1c
IVT: Offset: 0x1000 Size: 0x100
AppBootCode Header: Offset: 0x1200 Size: 0x40
Application: Offset: 0x1240 Size: 0x33e00
Boot Core: A53_0
IVT Location: SD/eMMC
Load address: 0x342f8f00
Entry point: 0x34302000我将 fip.s32 写入了 SD 卡。更换 fip 后,SD 卡仍然能够启动,并且 u-boot 的日期发生了变化。
U-Boot 2022.04-00213-g5a6f62071f (Aug 24 2026 - 10:35:21 +0800)配置引导加载程序。
zhipeng_3-1787647428751.pngzhipeng_3-1787647428751.pngzhipeng_3-1787647428751.png志鹏_3-1787647428751.png
zhipeng_4-1787647490093.pngzhipeng_4-1787647490093.pngzhipeng_4-1787647490093.png志鹏_4-1787647490093.png
zhipeng_5-1787647533346.pngzhipeng_5-1787647533346.pngzhipeng_5-1787647533346.png志鹏_5-1787647533346.png
zhipeng_6-1787647547310.pngzhipeng_6-1787647547310.pngzhipeng_6-1787647547310.png志鹏_6-1787647547310.png
生成 S32G 启动映像
zhipeng_7-1787647657415.pngzhipeng_7-1787647657415.pngzhipeng_7-1787647657415.png志鹏_7-1787647657415.png
选择 bt_m7_blob.bin 并将其写入地址 0x0。
选择 fip.bin 并将其写入地址 0x100000。
选择 S32G274A_M7.bin 并将其写入地址 0x200000。
zhipeng_8-1787647865193.pngzhipeng_8-1787647865193.pngzhipeng_8-1787647865193.png志鹏_8-1787647865193.png
现在UART和CAN都没有响应了。请帮我分析一下情况。
谢谢。
嗨, @Joey_z
感谢您的回复。
1. 是的,A 核心上只启动了 ATF 和 u-boot。UART接口没有任何输出。
2. M 内核运行 LLCE_CAN 和 Lpspi 程序,集成了“Can_Llce_DS_Loopback_S32G274A_M7”和“Lpspi_Ip_Transfer_S32G274A_M7”例程。它首先使用 SPI 通信,然后运行 LLCE_CAN。
我想补充一些信息:
1.整个过程按照 AN13750 进行,只有一些不同之处:我使用了 BSP42 和 S32DS3.5 版本;我用 LLCE_CAN 替换了 IPCF 例程,并且只配置了 M7_0。
2. 我使用 Yocto 编译了 BSP42,并生成了 .sdcard。导入SD卡后,即可启动Linux系统。
3. 我按照“AN13750” 4. 为 Cortex-A53 内核准备镜像 部分编译了 BSP42 的 u-boot 和 ATF。将 .sdcard 和 fip.s32 重新导入 SD 卡后,Linux 仍然可以在 SD 模式下启动。但是,当将引导加载程序和 fip.bin 导入到 norflash 时,没有获得任何输出。
4. 我在 norflash 中单独烧录了 M7 内核的 UART 例程,Linux 可以启动并输出。这证明燃烧工具和诺弗拉什(Norflash)都是正常的。
5. 我将 LLCE_CAN 程序单独烧录到 norflash 中。程序没有运行,也没有CAN输出。
6.我尝试配置 EB 引导加载程序以单独启动 A53,但重新烧录 norflash 后仍然没有任何输出。
谢谢。
嗨,志鹏
1.我了解到您的 LLCE_CAN 运行在 M 内核上。请独立测试该程序 M 核心的引导加载程序启动情况。启动过程中,不要加载 A 核心映像。
2. 在您的测试中,引导加载程序可以启动 M7 的 UART 程序,但无法启动 LLCE_CAN 程序吗?
3. 你有没有试过只使用引导加载程序启动 A53?
我已在系统中用中文为此问题创建了一个新案例,案例编号为:01000969。这将有助于沟通。
BR
乔伊