NXP S32V234 的 BSP23+VSDK1.6 编译和调试

 前言:

        NXP 官方网站会不定期的更新S32V234 的 BSP 和 VSDK 的版本,而客户也会持续更新最新的版本,所以经常因为新版本和版本的差异导致一些问题,
因此在 NXP 推送了新的 BSP 和 VSDK 版本之后,我们需要及时的对新版本进行编译和调试,以便更早的排查问题,解决问题,帮助客户提升调试效率。
       
        本文是基于 NXP 的官方 Demo 板 EVB2 进行 BSP23 和 VSDK1.6 这个大版本的调试,同时也适用于 WPI 的 Eagle Eye 。

 

 

1. 下载和编译 BSP23

(1)下载交叉编译器 。

sudo wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

sudo xz -d gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

sudo tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar

 

(2)下载 & 编译 uboot 。

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

cd u-boot

git checkout -b bsp23_uboot v2018.07_bsp23.0

 

安装编译 uboot 需要的工具。

sudo apt install flex bison

 

编译 uboot 。

sudo make ARCH=aarch64 CROSS_COMPILE=/home/stark/S32V/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- s32v234evb_defconfig

sudo make CROSS_COMPILE=/home/stark/S32V/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-




(3)下载 & 编译 kernel。

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

cd linux

git checkout -b bsp23_linux v4.19.59_bsp23.0

 

注意:这里需要先打个补丁,否则 最后编译出来的 oal_driver.ko 会无法加载,补丁位置是 /home/stark/VisionSDK_S32V2_RTM_1_6_0/s32v234_sdk/
os/linux/0001-s32v234-dts-Add-VSDK-specific-configuration.patch ,拷贝到 linux 源码目录下,使用命令打补丁。

sudo patch -p1 < 0001-s32v234-dts-Add-VSDK-specific-configuration.patch

sudo make ARCH=arm64 CROSS_COMPILE=/home/stark/S32V/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- s32v234_defconfig

sudo make ARCH=arm64 CROSS_COMPILE=/home/stark/S32V/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

2. 安装 VSDK

(1)安装 Linux 版本的 VSDK 过程中需要记住点开如下链接获取 “License Keys”,

 

点进链接之后选择如下圈出来的版本,

 

再选择 “License Keys”,

 

在点开的页面中记住 Actication Code,

 

在安装到 36% 的时候会安装 APU Compiler,

中间有一次需要输入密码,需要留意一下,填入上面记住的 Actication Code 即可,之后便可一路 Next 顺利安装。

 

 

3. 编译模块驱动

(1)安装好了之后,编译 ko 驱动,并拷贝到 build_ko 目录中,

 

注意:

① 编译 ko 需要添加 sudo 执行脚本,否则 insmod 时无权限。

② 编译 oal_driver.ko 需要确认添加了 KERNEL_DIR 。

 

(2)请参考如下脚本进行编译:

export ARCH=arm64

export CROSS_COMPILE=aarch64-linux-gnu-

export LINUX_S32V234_DIR=/home/stark/S32V/bsp23/linux

export PATH=$PATH:/home/stark/S32V/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

export SDK_DIR=/home/stark/VisionSDK_S32V2_RTM_1_6_0/s32v234_sdk

export MOD_PWD=$PWD

export KERNEL_DIR=/home/stark/S32V/bsp23/linux

 

cd $SDK_DIR/3rdparty/oal/libs/kernel/linux-write/build-linux-kernel

make clean & make

sudo cp $SDK_DIR/3rdparty/oal/libs/kernel/linux-write/build-linux-kernel/liboal_kernel.a \

   $SDK_DIR/3rdparty/oal/libs/kernel/linux-write/build-linux-kernel/build-v234ce-gnu-linux-d/

cd $SDK_DIR/3rdparty/oal/libs/kernel/driver/build-linux-kernel

make clean & make

cd $SDK_DIR/libs/apex/drivers/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/cam_generic/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/csi/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/fdma/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/h264dec/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/h264enc/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/jpegdec/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/sequencer/kernel/build-v234ce-gnu-linux-d

make clean & make

cd $SDK_DIR/libs/isp/viu/kernel/build-v234ce-gnu-linux-d

make clean & make

 

sudo cp $SDK_DIR/3rdparty/oal/libs/kernel/driver/build-linux-kernel/oal_driver.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/apex/drivers/kernel/build-v234ce-gnu-linux-d/apex.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/csi/kernel/build-v234ce-gnu-linux-d/csi.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/cam_generic/kernel/build-v234ce-gnu-linux-d/cam.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/sequencer/kernel/build-v234ce-gnu-linux-d/seq.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/fdma/kernel/build-v234ce-gnu-linux-d/fdma.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/h264enc/kernel/build-v234ce-gnu-linux-d/h264enc.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/h264dec/kernel/build-v234ce-gnu-linux-d/h264dcd.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/jpegdec/kernel/build-v234ce-gnu-linux-d/jpegdcd.ko $MOD_PWD/build_ko

sudo cp $SDK_DIR/libs/isp/viu/kernel/build-v234ce-gnu-linux-d/viulite.ko $MOD_PWD/build_ko

 

(3)编译得到

 

 

4. 制作 SD 卡启动盘

(1)先使用脚本分区 (MakeSD/step1-fdisk.sh) ,脚本内容如下( sdb 替换为你 sd 卡的设备名):

umount /dev/sdb1

umount /dev/sdb2

sudo fdisk /dev/sdb

 

使用 fdisk 工具分区具体参数参考 《Auto_Linux_BSP_23.0_S32V234_User_Manual》page 21-22


分区完成后重新插拔 SD 卡。

 

(2)使用脚本格式化sd卡 (MakeSD/step2-format.sh) ,内容如下( sdb 替换为你 sd 卡的设备名):

umount /dev/sdb1

umount /dev/sdb2

sudo mkfs.vfat -n boot /dev/sdb1

sudo mkfs.ext3 -L rootfs /dev/sdb2

 格式化完成后重新插拔 SD 卡。

 

(3)使用脚本写入 u-boot (modules/step1_dd_29288_s32.sh) ,脚本内容如下( sdb 替换为你 sd 卡的设备名):

cd /home/stark/S32V/bsp23/modules/build_ko/systemfile

sudo dd if=u-boot-29288.s32 of=/dev/sdb bs=512 seek=8 conv=fsync

 

(4)使用脚本拷贝 boot 分区必要文件 (modules/step2_cpForBoot_Image_dtb.sh) ,脚本内容如下:

sudo cp /home/stark/S32V/bsp23/modules/build_ko/systemfile/Image /media/stark/boot/Image

sudo cp /home/stark/S32V/bsp23/modules/build_ko/systemfile/fsl-s32v234-evb.dtb  /media/stark/boot/fsl-s32v234-evb.dtb

sync

sudo cp /home/stark/S32V/bsp23/modules/build_ko/systemfile/cse.bin /media/stark/boot/cse.bin

 

(5)使用脚本拷贝根文件系统 (modules/step3_tar_For_Rootfs.sh) ,这里使用文件系统是 VisionSDK_S32V2_RTM_1_6_0_img_yocto.tar.gz 中的VisionSDK_S32V2_RTM_1_6_0_img_yocto.tar\VisionSDK_S32V2_RTM_1_6_0_img_yocto\build_content\v234_linux_build\s32v234evb\rootfs\rootfs-evb.tar.gz,
脚本内容如下:

cd /media/stark/rootfs

sudo tar xvf /home/stark/S32V/bsp23/modules/build_ko/systemfile/rootfs-evb.tar.gz

 

(6)使用脚本拷贝 ko 文件 (modules/step4_cp_For_rootfs_ko.sh),脚本内容如下:

sudo cp /home/stark/S32V/bsp23/modules/build_ko/*.ko /media/stark/rootfs/s32v234/

 

 

5. demo 演示

把做好的 sd 卡启动盘插到 EVB2 板子上,接好串口,上电,即可尝试运行 /home/root/vsdk/ 下的 demo 程序,这里我运行如下例程:

./apex_downsample_upsample_cv.elf

 

运行显示效果如下

 

 


参考资料

[1] Auto_Linux_BSP_23.0_S32V234_User_Manual

 

上一篇:NXP S32V234 使用 ISP 进行 H264 视频解码

下一篇:NXP S32V234 基于 Eagle Eye 的 OV9284 调试

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论