标签:mod 变量 准备工作 自动 inf top password chm get
由于工作上要反复从PC上交叉编译好应用程序,并通过tftp下载到ZYNQ板子上进行运行调试。重复敲命令过于麻烦,所以编写一个脚本实现自动下载,改权限和运行功能。
一、准备工作
将ZYNQ7000开发板和主机端(PC或虚拟机)连接到同一网段。
主机端安装好tftpd-hpa服务器和xinet.d,启动运行
z@ubuntu:~$ sudo service xinetd restart #开启xinetd服务 [sudo] password for z: xinetd stop/waiting xinetd start/running, process 4848 z@ubuntu:~$ sudo service tftpd-hpa restart #开启tftpd服务器 tftpd-hpa stop/waiting tftpd-hpa start/running, process 4880 z@ubuntu:~$
在ZYNQ端安装好tftp服务。
二、编写脚本GetRun.sh
1 #! /bin/sh 2 3 HOST="192.168.202.44" #主机地址 4 5 FILE_NAME=$1 #输入参数,主机端文件名 6 7 INFO="[ZYNQ-QT]:" #文件执行提示信息 8 9 10 if [ "$FILE_NAME" = "" ] #判断文件名是否为空 11 then 12 echo $INFO"Not comfirm the FILE!" #为空则给出提示信息并退出 13 exit 14 fi 15 16 echo $INFO"Get ${FILE_NAME} form ${HOST}\n" #打印提示信息,开始tftp下载 17 18 tftp ${HOST} <<! #注意“<<!”,表示等待键盘输入 19 get ${FILE_NAME} 20 quit 21 ! #键盘输入结束 22 23 FILE_LENGTH=$(ls -l ${FILE_NAME} | awk ‘{print $5}‘) #获取下载文件的文件长度 24 25 if [ $FILE_LENGTH -gt 0 ] #如果文件长度大于0 26 then 27 28 echo "\n"$INFO"change mode with exe" 29 30 chmod +x ${FILE_NAME} #增加可执行属性 31 32 echo $INFO"run: {${FILE_NAME}}" 33 echo $INFO"----------------------------------\n" 34 ./${FILE_NAME} #运行程序 35 echo $INFO"----------------------------------" 36 else #如果文件长度等于0,表示下载失败 37 echo $INFO"[${FILE_NAME}] is bad or broken." 38 echo $INFO"remove the Null-file [${FILE_NAME}]" 39 rm ${FILE_NAME} #删除空文件 40 fi
ZYNQ上运行的是linrao Ubuntu系统,首次下载GetRun.sh文件
root@linaro-ubuntu-desktop:/home/linaro/tftpboot# tftp 192.168.202.44
tftp> get GetRun.sh
Received 696 bytes in 0.0 seconds
tftp> quit
root@linaro-ubuntu-desktop:/home/linaro/tftpboot# ls
GetRun.sh
增加执行权限
root@linaro-ubuntu-desktop:/home/linaro/tftpboot# chmod +x GetRun.sh
下载test_spi程序并执行
root@linaro-ubuntu-desktop:/home/linaro/tftpboot# ./GetRun.sh test_spi
[ZYNQ-QT]:Get test_spi form 192.168.202.44
tftp> Received 9334 bytes in 0.1 seconds
tftp>
[ZYNQ-QT]:change mode with exe
[ZYNQ-QT]:run: {test_spi}
[ZYNQ-QT]:----------------------------------
init_SPI1()++
handle_spi1dev = 0
can‘t set spi mode to 32bits
handle_spi1dev = 3
init_SPI1()--
[ZYNQ-QT]:----------------------------------
root@linaro-ubuntu-desktop:/home/linaro/tftpboot#
如需要对GetRun.sh进行更新,可直接运行
root@linaro-ubuntu-desktop:/home/linaro/tftpboot# ./GetRun.sh GetRun.sh [ZYNQ-QT]:Get GetRun.sh form 192.168.202.44 tftp> Received 696 bytes in 0.0 seconds tftp> [ZYNQ-QT]:change mode with exe [ZYNQ-QT]:run: {GetRun.sh} [ZYNQ-QT]:---------------------------------- [ZYNQ-QT]:Not comfirm the FILE! 这是更新后的程序,再次运行,由于缺少参数报错 [ZYNQ-QT]:---------------------------------- root@linaro-ubuntu-desktop:/home/linaro/tftpboot#
三、需要注意的问题
HOST = "192.168.202.44" 是非法的
FILE_LENGTH=$(ls -l ${FILE_NAME} | awk ‘{print $5}‘)
if [$FILE_LENGTH -gt 0] 将会报错
标签:mod 变量 准备工作 自动 inf top password chm get
原文地址:http://www.cnblogs.com/qiantuo1234/p/6639869.html