最近遇到一个问题
需要写一个测试脚本,但好久都没写出来,主要还是我自己菜
要求是这样的:
输入输出测试,拉高gpio是1,读的为1;拉低gpio是0,读的为0,判断读的是否跟拉高拉低数据一致,如果不一致就是测试失败
gpio_read.sh
#/bin/bash
gpio_path=/sys/class/gpio
if [[ $# != 1 ]]; then //代表gpio端口号,比如我读的是56
echo "Usage: <gpio_num>"
fi
gpio_num=$1
if [[ ! -d "$gpio_path/gpio${gpio_num}" ]]; then
echo $gpio_num > $gpio_path/export
fi
echo in > $gpio_path/gpio${gpio_num}/direction
cat $gpio_path/gpio${gpio_num}/value //这个是数值,比如0或1
gpio_write.sh
#/bin/bash
gpio_path=/sys/class/gpio
if [[ $# != 2 ]]; then
echo "Usage: <gpio_num> <value>"
fi
gpio_num=$1
value=$2
if [[ ! -d "$gpio_path/gpio${gpio_num}" ]]; then
echo $gpio_num > $gpio_path/export
fi
echo out > $gpio_path/gpio${gpio_num}/direction
echo $value > $gpio_path/gpio${gpio_num}/value
exit 0
usb_test.sh
#!/bin/sh
export PATH=$PATH:`pwd`
if [[ $# -ne 1 ]]; then
echo "echo "Usage: [usb_num]""
exit 1
fi
usb_num=$1
#usb_info=`udevadm info --export-db | grep "^P.*usb${usb_num}/${usb_num}-1.*sd[a-z][0-9]\$"`
#echo $usb_info
usb_info=`udevadm info -e | grep "^P.*usb[0-9].*${usb_num}/${usb_num}.*sd[a-z][0-9]\$"`
device=`echo $usb_info | awk '{print "" substr($0, length($0)-3)}'`
echo $device
if [[ "$device" = "" ]];then
echo "no such device"
exit 3
fi
partition="/dev/$device"
mount_point=`mount | grep $partition | awk -F " " '{print $3}'`
if [[ "$mount_point" = "" ]]; then
mount_point="/mnt/$device"
if [[ ! -d $mount_point ]]; then
mkdir -p $mount_point
fi
mount $partition $mount_point
if [[ $? -ne 0 ]]; then
echo "device is not available"
exit 3
fi
fi
echo $mount_point
file_rw_test --create $mount_point/__usb_disk_test 2
if [ $? -ne 0 ];then
echo "read write failed"
exit 1
fi
umount $mount_point
killall storage_manager
exit 0
过了两天,突然就想起了
if [[ $a = 1]] && [[ $b = 0 ]];then
echo "Test successful"
exit 0
else
echo "Test filed"
exit 1
fi