首页专栏详情
打赏
关于SS928评估板学习(五):编译操作方法
关于SS928评估板学习(五):编译操作方法
易百纳技术社区 Debug 2022-09-21 14:30:18

一、安装SDK补丁包

在SS928V100R001***\02.only for reference\software目录下,找到SS928V100_REF_Vx.x.x.x.tgz补丁包,和安装脚本ref_patch.sh,将其拷贝到虚拟机SDK同级目录下;解压并安装补丁包:

tar -zxvf SS928V100_REF_Vx.x.x.x.tgz
./ref_patch.sh

二、编译SDK包

进入SS928V100_SDK_Vx.x.x.x/osdrv目录下,查看readme.txt文件中详细的交叉编译步骤,对SDK包进行初次编译,更为详细的编译步骤于《SS928V100 U-boot 移植应用开发指南.pdf》、《SS928V100 开发环境用户指南.pdf》两文档中有所描述,具体目录位于:

SS928V100*\ReleaseDoc\zh\01.software\board\OSDRV\

注:整体编译会同时编译LiteOS,编译LiteOS需要安装的工具包括 python、pip 和 kconfiglib,可参考《LiteOS 开发指南.pdf》中第 8.2 章节文档进行 LiteOS 编译环境的配置;

如果不需要编译LiteOS,建议单独编译Uboot、kernel、rootfs;

1.编译整个osdrv目录:

make all

默认编译:

make BOOT_MEDIA=spi all

参数说明:

BOOT_MEDIA:spi nor或spi nand启动选择spi;并口nand启动选择nand;emmc启动选择emmc

2.清除整个osdrv目录的编译文件:

make  clean

3.彻底清除整个osdrv目录的编译中间文件:

make distclean

4.单独编译kernel image:

a.进入open_source/linux目录,执行以下操作

     tar xf linux-4.19.90.tar.gz
     mv linux-4.19.90 linux-4.19.y
     cd linux-4.19.y
     patch -p1 < ../linux-4.19.90.patch
     cp arch/arm64/configs/ss928v100_defconfig .config

     (emmc启动时执行如下操作: cp arch/arm64/configs/ss928v100_emmc_defconfig .config)

     (并口 nand 启动时执行如下操作:cp arch/arm64/configs/ss928v100_nand_defconfig .config)

     make ARCH=arm64 CROSS_COMPILE=aarch64-mix210-linux- menuconfig
     make ARCH=arm64 CROSS_COMPILE=aarch64-mix210-linux- uImage -j 20

 b.进入open_source/trusted-firmware-a/trusted-firmware-a-2.2目录,

   执行mk.sh脚本(参考主Makefile中atf命令进行适配):

   chmod 777 mk_ss928v100.sh
   ./mk_ss928v100.sh

   在open_source/trusted-firmware-a/trusted-firmware-a-2.2/build/ss928v100/release目录下,生成的fip.bin文件就是ATF+kernle的镜像.

5.单独编译快速启动的uboot或非安全启动的Boot Image:

 注意:发布包默认按照 DEMO 板的配置发布,如果客户单板和 DEMO 板不一致,需要根据客户自己的单板环境修改uboot表格才能使用,否则可能导致uboot无法启动或者其他问题。flash启动采用SS928V100_demo_8L_LPDDR4x_3733M-8GB_32bitx2-A55_1400M.xlsm表格,emmc启动采用SS928V100_demo_8L_LPDDR4x_3733M-8GB_32bitx2-A55_1400M-emmc.xlsm表格。

 a.进入uboot源代码目录后,执行以下操作:

     tar xf u-boot-2020.01.tar.bz2
     cd u-boot-2020.01
     patch -p1 < ../u-boot-2020.01.patch
     cp configs/ss928v100_defconfig .config(仅用于 spi nor/nand flash)

     (emmc启动时执行如下操作: cp configs/ss928v100_emmc_defconfig .config)

     (并口 nand 启动时执行如下操作:cp configs/ss928v100_nand_defconfig .config)

     make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- menuconfig
     make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- -j 20

        Windows下进入到osdrv/tools/pc/uboot_tools/目录下打开对应单板的Excel文件,在main标签中点击"Generate reg bin file"按钮,生成reg_info.bin即为对应平台的表格文件。

        从tools/pc/uboot_tools目录拷贝reg_info.bin到boot源代码目录,重命名为.reg

        cp ../../../osdrv/tools/pc/uboot_tools/reg_info.bin .reg 
        make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- u-boot-z.bin

        open_source/uboot/u-boot-2020.01下生成的u-boot-ss928v100.bin即为“快速启动”使用的u-boot镜像

 b.对于“非安全启动”方案,还需要进入osdrv/components/目录,执行以下操作来制作 Boot Image:

     tar xf boot.tar.gz
     cd boot/gsl/
     make CHIP=ss928v100
     cd ../image_map/
     cp ../gsl/pub/gsl.bin ./
     cp ../../../../open_source/u-boot/u-boot-2020.01/u-boot-ss928v100.bin ./u-boot-original.bin 
     cp ../../../../open_source/u-boot/u-boot-2020.01/.reg ./
     python3 oem/oem_quick_build.py

 osdrv/components/boot/image_map/image/oem/下生成的boot_image.bin即为“非安全启动”使用的Boot Image。

6.制作文件系统镜像:

在osdrv/pub/中有已经编译好的文件系统,因此无需再重复编译文件系统,只需要根据单板上启动介质的规格型号制作文件系统镜像即可。

 spi flash使用jffs2格式的镜像,制作jffs2镜像时,需要用到spi flash的块大小。这些信息会在uboot启动时会打印出来。建议使用时先直接运行mkfs.jffs2工具,根据打印信息填写相关参数。下面以块大小为64KB为例:

 osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc_xxx -l -e 0x10000 -o osdrv/pub/rootfs_ss928v100_64k.jffs2

 nand flash使用ubifs格式的镜像,制作ubifs镜像时,需要用到nand flash的pagesize和blocksize。这些信息会在uboot启动时会打印出来。

 下面以2KB pagesize、128KB block size为例:

 ./tools/pc/ubi_sh/mkubiimg.sh ss928v100 2k 128k osdrv/pub/rootfs_glibc_xxx 32M osdrv/pub/bin/pc

 emmc 使用ext4格式的镜像:以96MB镜像为例:

 dd if=/dev/zero of=osdrv/pub/ss928v100_image_glibc/rootfs_ss928v100_96M.ext4 bs=512 count=196608

 备注:(196608 = 96 *1024 * 1024 / 512)

 ./osdrv/pub/bin/pc/mkfs.ext4 osdrv/pub/ss928v100_image_glibc/rootfs_ss928v100_96M.ext4
 cd open_source/e2fsprogs/out/pc/contrib
 ./populate-extfs.sh ../../../../../osdrv/pub/rootfs_glibc_arm64 ../../../../../osdrv/pub/ss928v100_image_glibc/rootfs_ss928v100_96M.ext4


1327
收藏
点赞
打赏
给作者打赏,鼓励他抓紧创作吧~
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
Debug
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区