【S32G3】搭建 S32G-VNP-RDB3 M 核和 A 核双核工作环境

1. 概述

本文讲述如何搭建 S32G-VNP-RDB3 M 核和 A 核双核工作环境。

2. 构建 Cortex-A53 核代码

2.1 配置交叉编译器

       下载适用于ARM 64位的GCC 10.2.0工具链(下载链接)。

       放在工作目录下解压:

       $tar -xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz

2.2 编译 uboot

      下载 uboot 源码:

      $export HOME=/path/to/your/workspace

      $cd $HOME

      $git clone https://source.codeaurora.org/external/autobsps32/u-boot

      $cd u-boot

      $git checkout release/bsp35.0-2020.04

      编译 uboot:

      $export CROSS_COMPILE=$HOME/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linuxgnu/bin/aarch64-none-linux-gnu-

      $make s32g399ardb3_defconfig

      $make

 2.3 编译 ATF

      安装软件:

      $sudo apt-get install libssl-dev openssl

      安装/升级到dtc 1.4.6或更高版本:

      $dtc –version

      $sudo apt-get install device-tree-compiler

      获取 ATF 源码:

      $cd $HOME

      $git clone https://source.codeaurora.org/external/autobsps32/arm-trusted-firmware

      $cd arm-trusted-firmware

      $git checkout release/bsp35.0-2.5

      修改如下:

      编译 ATF:

      $make ARCH=aarch64 PLAT=s32g399ardb3 BL33=$HOME/u-boot-2/u-boot-nodtb.bin

      构建完成后,生成的图像位于目录中:arm trustedfirmware/build/s32g274ardb2/release。日志显示了生成的FIP映像的加载地址和入口点,如下所示:

2.4 编译linux

      $cd $HOME

      $git clone https://source.codeaurora.org/external/autobsps32/linux

      $cd linux

      $git checkout release/bsp35.0-5.10.145-rt

      $make ARCH=arm64 s32cc_defconfig

      $make ARCH=arm64

2.5 编译 IPC

      获取 IPC 源码:

      $cd $HOME

      $git clone https://source.codeaurora.org/external/autobsps32/ipcf/ipc-shm

      $cd ipc-shm

      $git checkout release/SW32G_IPCF_4.8.0_D2212

      编译:

      $cd $HOME

      $make -C ./ipc-shm/sample_multi_instance KERNELDIR=$PWD/linux modules

 2.6 制作 SD 卡

      搭建 ycoto 工程,如所示,

      烧录 yocto 镜像包到 SD 卡,然后烧录替换 bootloader:

      $ dd if=fip.s32 of=/dev/sdb skip=512 seek=512 iflag=skip_bytes oflag=seek_bytes conv=fsync,notrunc

      拷贝 linux/arch/arm64/boot/Image 和 linux/arch/arm64/boot/dts/freescale/s32g399a-rdb3.dtb 到 SD 卡的 boot 分区。

      拷贝 ipc-shm/ipc-shm-dev.ko 和ipcshm/sample_multi_instance/ipc-shm-sample_multi-instance.ko 到 SD 卡 root 分区。

3. 构建 M7 和代码

3.1  安装配置 S32 Design studio

      下载S32 Design Studio 3.5并完成安装:

      S32DS.3.5_b220726_win32.x86_64.exe

      SW32G_S32DS_3.5.1_D2210.zip

      按照步骤为S32DS安装RTD和IPCF包:

① 下载RTD版本:SW32G_RTD_4.4_4.0.0_P05_HF01_D2305_DS_updatesite.zip

② 启动S32DS 点击 Help > `Install New Software…`. 在安装界面, 点击 `Add…`> `Archive…` 打开 SW32G_RTD_4.4_4.0.0_P05_HF01_D2305_DS_updatesite.zip. 点击打开进行安装,下面软件也是一样操作的方法:

      SW32G_IPCF_4.8.0_D2212_updatesite.zip

      SW32_FreeRTOS_10_4_6_UOS_4_0_2_DS_updatesite_D2307.zip

      SW32G_SDHC_1_0_4_D2310_updatesite.zip

③ 编译 M7_0 代码

      点击 file -> New -> S32DS Project from Example。

      找到 IPCF_Example_multi_instance_S32G399_M7_0 工程并点击 Finish。

3.2  配置 bootloader

① 下载 EB::

      Nxp 官网下载EB tresos Studio 29.0.0 的 EBtresosStudio_EBtresosStudio.zip,放到工作目录下解压使用。

② 安装 RTD 软件:

      下载 SW32G_RTD_4.4_4.0.0_P05_HF01_D2305.exe

      需要配置 EB 路径,如下所示:

③ 安装 Integration_Reference_Examples 软件:

      下载Platform_Software_Integration_S32G3_2023_02.exe

      安装时也需要配置 EB 路径,如下所示:

④ 配置EB 工程

      点击 tresos_gui.exe 打开软件,点击 file -> Import… -> 选择 General -> 点击 Existing Projects into Workspace -> 点击 Next。

      点击 Browse… -> 找到 Integration_Reference_Examples_S32G3_2023_02 安装目录 -> 点击确定。

      只选择第一个工程配置 -> 勾选 Copy peojects into wrokspace -> 点击完成。

      右击工程 Cortex-M -> 点击 Load Configuration。

      分别右击 RM、Crypto 和CryptoDal,都 disabled 掉。

      导航到SysDal插件配置,选择SysDalBswConfig ->PowerUp ->DeinList 。在列表中,删除项目Rm_Init。

      导航到Bootloader插件的配置。选择“Boot Sources”,配置 linux_bsp_atf 和 ipc_app_m7_0 如下所示:

      分别右击 linux_bsp_atf 和 ipc_app_m7_0 打开 Edit element… 配置。

      分别配置如下所示:

      右击 Cortex-M 选择 Generate Project。成功生成后,单击“确定”完成。

⑤ 构建 Bootloader

      修改 D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\generic\src\ Bootloader.c 文件:

配置D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\platforms\S32G3XX\build\configuration.bat 文件:

      去掉 RM、Crypto 和 CrcytoDal 相关的 .c 和 .h 文件,打开电脑 cmd 命令行,进入 D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\platforms\S32G3XX\build\ 目录,执行 launch.bat 命令编译

⑥ 配置 S32DS IVT_TOOL

      打开一个工程,打开工程的 IVT 配置,Boot Target 选择 M7_0,QuadSPI parameters 选择
      D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\platforms\S32G3XX\res\flash\S32G3XX_QuadSPI_133MHz_DDR_configuration.bin 文件。

      DCD 选择 D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\platforms\S32G3XX\res\flash\S32G3XX_DCD_InitSRAM.bin 文件。

     操作图示如下:

      1 -> 选择文件:D:\nxp\Integration_Reference_Examples_S32G3_2023_02\code\framework\realtime\swc\bootloader\platforms\S32G3XX\build\bin\Bootloader.bin;

      2 & 3 –> 输入地址 0x35300000;

      4 -> 输入自动调整起始地址,并点击调整;

      5 -> 导出 Image 并命名 bt_m7_app.bin

      6 -> 导出 Blob 镜像并命名 bt_m7_blob.bin

 4. 在s32g-vnp-rdb3上部署

      以下是使用S32闪存工具对Nor闪存进行编程的步骤。

① 在目录中启动S32 Flash工具:

      D:\NXP\S32DS.3.5\S32DS\tools\S32FlashTool\GUI\s32ft.exe
② 将 RDB3 UART0 连接到 PC USB 端口,配置如下:
 

③ 将 RDB3 设置为串行启动模式: SW10-1=OFF,SW10-2=OFF
④ 打开RDB3 的电源。
⑤  点击 “Upload target and algorithm to hardware
⑥ 点击 `Erase memory range` 并擦除内存范围 0x0 - 0x500000.
⑦  点击 `Upload file to device` ,选择 bt_m7_blob.bin 写到地址 0x0.
⑧ 点击 `Upload file to device,选择 fip.bin 写到地址 0x100000
⑨ 点击 `Upload file to device`,选择 IPCF_Example_multi_instance_S32G274_M7_0.bin 文件烧录到地址 0x200000

5. 在S32G-VNP-RDB3上运行应用程序

以下是在S32G2 RDB2板上运行应用程序的步骤

① 将SD卡插入RDB3的插槽。
② 将RDB3 配置从外部 NOR-Flash 启动模式

      SW10-1=ON,SW10-2=OFF

      SW4 all OFF
③ 将RDB2 UART0连接到PC USB端口4。
④ 在PC上启动串行终端,用波特率115200设置串行端口,格式8-n-1
⑤ 打开RDB3 的电源。如果一切正常,将在终端上获得A53启动日志。
⑥ 配置 bootloader 关掉 PCIE,然后内核启动后,输入root登录。
⑦ 挂载 IPC 模块
      $insmod ipc-shm-dev.ko
      
$insmod ipc-shm-sample_multi-instance.ko
⑧ 运行IPC示例。将看到显示Linux内核和Cortex-M7内核之间IPC消息的日志。

      $echo 1 > /sys/kernel/ipc-shm-sample-instance0/ping

至此完成搭建 S32G-VNP-RDB3 M 核和 A 核双核工作环境以及测试!

参考文献

《AN13750.pdf》
《TP-S32G-VNP-RDB3.pdf》


福利:【签到有礼】2024/12/16~12/22 一起来学习打卡吧! - 大大通(简体站)

【签到有礼】2024/12/16~12/22 一起来学习打卡吧! 签到即有机会获取以下礼品!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值