whilebreak

CH09 开机自动烧录QSPI

0
阅读(1252)

版本信息:

版本

REV2018

时间

05/22/2018

XILINX ZYNQ LINUX

基于米联MZ7X系列

电子版自学资料

常州一二三电子科技有限公司

溧阳米联电子科技有限公司

版权所有

米联客学院04QQ群:516869816

米联客学院03QQ群:543731097(半满)

米联客学院02QQ群:86730608(满)

米联客学院01QQ群:34215299(满)

版本

时间

描述

Rev2018

2018-05-22

采用批处理文件,自动化管理,侧重基础和应用

感谢您使用米联客ZYNQ系列开发板,以及配套教程。本教程将对之前编写的《修炼秘籍》部分内容做出改进,并且增加新的课程内容。本教程不仅仅适合用于米联客开发板,而且可以用于其他的ZYNQ开发板。

软件版本:VIVADO2017.4(提供安装好环境的虚拟机)

版权声明:

本手册版权归常州一二三电子科技有限公司/溧阳米联电子科技有限公司所有,并保留一切权利,未经我司书面授权,擅自摘录或者修改本手册部分或者全部内容,我司有权追究其法律责任。

版主大神们都等着大家去提问--电子资源论坛 www.osrc.cn

扫描以下二维码注册论坛:www.osrc.cn

clip_image002

微信公众平台:电子资源论坛

clip_image004
目录

XILINX ZYNQ LINUX............................................................................................................................... 1

基于米联MZ7X系列..................................................................................................................................... 1

CH09 开机自动烧录QSPI............................................................................................................................... 5

9.1 概述................................................................................................................................................... 5

9.2 修改S60mount_emmc.sh文件............................................................................................................. 5

9.3 编译................................................................................................................................................... 6

9.4测试结果............................................................................................................................................. 6


CH09 开机自动烧录QSPI

9.1 概述

我们经常要更新程序,比如更新QSPI的系统,或者更新应用程序。如果我们只要一张TF卡就能解决问题,这就非常方便了。笔者就是从这个需求出发,结合前面的章节内容,来实现这个课程的目标。

9.2 修改S60mount_emmc.sh文件

我们在第五课的时候学习了通过dd指令把TF卡的qspi_image.bin文件烧录到了QSPI FLASH。后来我们又学习了如何开机自动挂载EMMC,和开机自动运行hello world APP程序。所以这节课,我们只是要实现,开机自动挂载SD卡并且自动运行dd指令烧录QSPI。我们假设我们要更新的程序文件名为update_qspi.bin文件。修改后的S60mount_emmc.sh如下。

#

# Start mount emmc....

#

case "$1" in

start)

echo "开始挂载EMMC,创建路径/mnt/emmc"

mkdir -p /mnt/emmc

mount -t ext2 /dev/mmcblk1p1 /mnt/emmc

ret=$?

if [ $ret -ne 0 ]; then

echo "EMMC正在格式化..."

echo -e "n \n p \n 1 \n \n \n w \n" | fdisk /dev/mmcblk1

mkfs.ext2 /dev/mmcblk1p1

mount -t ext2 /dev/mmcblk1p1 /mnt/emmc

fi

echo "EMMC挂载成功!"

echo "开始挂载tf,创建路径/tmp"

mkdir -p /tmp

mount /dev/mmcblk0p1 /tmp

echo "开挂载成功!"

if [ -f "/tmp/update_qspi.bin" ]; then

echo "start update qspi flash ..."

dd if=/tmp/update_qspi.bin of=/dev/mtdblock0

echo "update qspi finished!"

fi

;;

stop)

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit $?

9.3 编译

执行

cd /mnt/workspace/osrc/scripts

Source settings64.sh

Cfg_rootfs.sh

Make_roofts.sh

以上执行完成后,就制作好了ramdisk了。

继续执行

make_qspi_image.sh

make_sdcard_image.sh

插入TF卡,执行

deploy_sdcard_image.sh

然后复制qpsi_image.bin文件到TF卡并且修改名字为update_image.sh

9.4测试结果

插入TF卡,接通USB-232串口到电脑,打开putty软件或者控制台串口,给开发板通电

clip_image006

把模式开关切换到QSPI模式,然后断电重启,可以看到系统从QSPI正确启动了。