QNX系统MfgTool烧写工具脚本说明

usb烧写是通过飞思卡尔的官方工具mfgtool烧写的,这个工具会根据cfg.ini配置和ucl2.xml命令配置来完成烧写操作的。
操作过程是:
1、首先打开可执行mfgtool可执行程序,主要注意的是,该工具在打开的时候会校验 命令配置脚本ucl2.xml中的资源,如果命令脚本中需要用到的资源在mfgtools\Profiles\Linux\OS Firmware\files\linux没有被找到,则会提示打开异常(errNo=4)。
2、烧写的镜像文件主要有ipl和ifs两个文件,假设在cfg.ini文件中配置的启动方式是emmc-linux,那么在xml中找到该启动方式的配置,然后修改对应的文件名称。(需要注意的是BootStrap 状态下配置命令不可以被修改)
3、解释一下BootStrap状态下的cmd为何不可以被修改?
答:烧写开始的时候,该工具会先拷贝一个可以使用的uboot和dtb以及zImage等文件系统,具体会从\mfgtools\Profiles\Linux\OS Firmware\firmware这个路劲下拷贝。等待嵌入式系统启动完成之后,设备才会在该临时系统下对emmc进行分区并拷贝镜像的操作(ipl和ifs)。
4、命令执行过程:
1> 首先对EMMC设备进行分区操作。(针对MfgTool工具而言是把他写入在mksdcard.sh脚本之中),所以我们要更改分区的话主要是对tar压缩脚本修改即可。
2> 需要注意的是:对于我的开发板而言,EMMC设备在QNX下的dev名称一般是:mmcblk3(linux下好些也是叫这个)。
3> 分区完成之后,便是将分区参数清除,命令是:
dd if=/dev/zero of=/dev/mmcblk3 bs=1k seek=384 conv=fsync count=129
4> 打开emmc的写保护权限:通过向设备boot0中写0完成:echo 0 > /sys/block/mmcblk3boot0/force_ro
5> 向emmc中写入ipl引导启动:dd if=$FILE of=/dev/mmcblk3 bs=512 seek=2 skip=2。这句话就表示我们将ipl写入了emmc的boot1分区(emmc的分区是从1开始编号的,分区主要有boot1、boot2、RMPB、UDA)
6> 关闭emmc的写保护权限:通过向设备boot1中写0完成:echo 1 > /sys/block/mmcblk3boot0/force_ro
7> 设置emmc的boot1启动。mmc bootpart enable 1( 分区号) 1(使能标记)/dev/mmcblk3 
以上操作便完成了ipl引导分区的创建。
5、文件系统的执行过程:
1> 格式化设备,ipl完成之后,系统会生成一个device设备,通常情况下叫做mmcblk3p1(partion 1 的意思)
xml中通过一个循环来等待该设备的生成:
"$ while [ ! -e /dev/mmcblk3p1 ]; do sleep 1; echo \"waiting...\"; done "
2> 设备生成之后,将设备格式化为fat32的格式:
mkfs -t vfat /dev/mmcblk3p1  
  并将该设备挂在到/mnt/mmcblk3p1目录下。
3> cp ifs文件系统
cp ifs.bin /mnt/mmcblk3p1/
umount /mnt/mmcblk3p1

以上的5个步骤便是对usb方式下烧写qnx 引导文件和文件系统的大概说明。

关于EMMC分区的详细介绍可以参看博客:

http://blog.csdn.net/mirkerson/article/details/44806673


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值