【ADAS】S32V 镜像打包与烧写

关键字 :ADASS32V
目的:将相关镜像文件打包,实际使用时即可通过脚本进行烧写,不需手动逐条输入命令做跟去格式化等操作

两种方式:方式 A 与 方式 B,
两种方式的优缺点比较:
方式 A:优点:烧写简单,实际脚本中主要是一条 dd 命令烧写,烧写速度慢      缺点:第一次制作过程较繁琐,空间利用与烧写速率成反比
方式 B:优点  : 烧写简单,烧写速率快,空间利用最优      缺点:第一次制作过程较繁琐,编写烧写脚本内容稍微复杂些 

方式 A:通过 dd 命令烧写
1、文件准备
   
u-boot.s32通过编译 u-boot 源码得到
Image、 s32v234-evb.dtb通过编译 linux 源码得到
cse.bin该文件需要联系【ADAS】技术人员获取
rootfs/s32v234_sdk/os/build_content/v234_linux_build/s32v234evb/rootfs


2、制作 boot.img 文件


sudo dd if=/dev/zero of=boot.img bs=512 count=522240 conv=fsync     // 生成 255M 大小的 boot.img 文件

sudo mkfs.vfat -n boot boot.img              //格式化成 vfat 文件系统,命名为 boot

sudo mkdir tmpfs        //在当前目录下创建目录 tmpfs

sudo mount -t vfat boot.img tmpfs/ -o loop        //将 boot.img 挂载在 tmpfs 目录下

cp  -r Image s32v234-evb.dtb cse.bin  tmpfs/        //将文件拷贝在 tmpfs/ 下

sudo umount tmpfs        //取消挂载,至此,boot.img 文件制作完成



3、制作 rootfs.ext3  文件


sudo dd if=/dev/zero of=rootfs.ext3 bs=512 count=522240 conv=fsync     // 生成 512M 大小的 rootfs.ext3 文件

sudo mkfs.ext3 -L rootfs  rootfs.ext3             //格式化成 ext3 文件系统,命名为 rootfs

sudo mkdir tmpfs        //在当前目录下创建目录 tmpfs

sudo mount -t ext3 rootfs.ext3 tmpfs/ -o loop        //将 rootfs.ext3 挂载在 tmpfs 目录下

cp  -r   rootfs/*   tmpfs/        //将文件拷贝在 tmpfs/ 下

sudo umount tmpfs        //取消挂载,至此,rootfs.ext3 文件制作完成


4、编写镜像打包脚本 mkupdate_bk.sh

脚本功能:将相关文件打包成一个 *.img 镜像文件,输出在当前目录下 ,要求当前目录下已有以下文件:
 
u-boot.s32
boot.img
rootfs.ext3

脚本内容如下:


5、烧写


sudo dd  if=s32v_emmc_181224.img  of/dev/sdb bs=1024 count=1M conv=fsync


方式 A : END
****************************************************************************************************************************************************************************************************************************************

方式 B:通过编写 flashImage 脚本进行烧写

1、制作 Image.ext3 文件
注意:该步骤实际上直接使用了方式 A 中所制作的 boot.img 文件, sizeof(Image.ext3) > sizeof(rootfs.ext3+boot.img+u-boot.s32)


sudo  dd  if=/dev/zero  of=Image.ext3  bs=1K count=1M conv=fsync                  //生成 1G Image.ext3 文件

sudo mkfs.ext3 -L  imagerootfs  Image.ext3   //格式化成 ext3 文件系统

sudo  mkdir -p tmpfs     //创建文件夹 tmpfs

sudo mount Image.ext3 tmpfs     //将文件 Image.ext3 挂载在 tmpfs

cp    -rf  rootfs/*    tmpfs/        //拷贝文件系统中的所有文件至 Image.ext3 中

cp  boot.img  u-boot.s32  tmpfs/boot     //将文件复制至  /tmpfs/boot   下

sudo unmount  tmpfs      //取消挂载

2、使用 flashImage  脚本烧写

脚本功能:输入是 Image.ext3 ,实现烧写
脚本内容:





3、执行脚本


sudo  ./flashImage.sh  Image.ext3   //执行脚本烧写程序, Image.ext3 作为参数输入


注意:本文针对的格式化后的 SD 卡或 EMMC,若是已经分区过后的有可能提示警告信息,具体原因请参考照脚本分析

【ADAS】 :  BSP


 

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

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

评论

Kakera

Kakera

2020年11月17日
太棒了,学习了,点赞!