ltp-ddt 加入sram 需要修改的部分

./platform/fmsh-psoc-db

add sram

将nor部分移植过来

 

# @name NOR read write test using dd
# @desc Perform NOR eraseall first, then do read write and then compare
# @requires  nor
# The partition number is specified in get_mtd_partition_number.sh


# erase_size as buffer size
NOR_S_FUNC_DD_RW_JFFS2_ERASESIZE_0001 source 'common.sh'; part=`get_mtd_partition_number.sh "nor"` || die "error getting mtd part number: $part"; size=`get_mtd_erase_size.sh "$part"` || die "error getting mtd erase size: $size"; blk_device_dd_readwrite_test.sh -f "jffs2" -b "$size" -c 10 -d "nor"

# partial mtd size as count
NOR_L_FUNC_DD_RW_JFFS2_BIGSIZE_0001 source 'common.sh'; part=`get_mtd_partition_number.sh "nor"` || die "error getting mtd part number: $part"; size=`get_mtd_size.sh "$part"` || die "error getting mtd size: $size"; size=$(( $size/MB )); do_cmd blk_device_dd_readwrite_test.sh -f "jffs2" -b "1M" -c "$size" -d "nor"

 

 1.

->get_mtd_erase_size.sh

  ->get_mtd_biggest_part

    ->in mtd_common.sh  find_part_type

before

find_part_type() {
  PART=$1
  MTD_DEV="mtdblock$PART"
  if [[ -e /sys/class/mtd/mtd$PART/type ]]; then
    TYPE=`cat /sys/class/mtd/mtd$PART/type`
    if [[ $TYPE == 'nand' ]]; then
      PART_TYPE='nand'
    else
      if [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'flash'` ]]; then
        PART_TYPE="nor"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'qspi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'ospi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'spi'` ]];then
        if [[ `cat /proc/mtd |grep -E "mtd$PART |mtd${PART}: "|grep -i qspi ` ]];then
          PART_TYPE="qspi"
        else
          PART_TYPE="spi"
        fi
      else
        die "/sys/class/mtd/mtd$PART/device/driver doesn't exist"
      fi
    fi
  else
    die "/sys/class/mtd/mtd$PART/type doesn't exist"
  fi
  echo $PART_TYPE
}

after

find_part_type() {
  PART=$1
  MTD_DEV="mtdblock$PART"
  if [[ -e /sys/class/mtd/mtd$PART/type ]]; then
    TYPE=`cat /sys/class/mtd/mtd$PART/type`
    if [[ $TYPE == 'nand' ]]; then
      PART_TYPE='nand'
    else
      if [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'flash'` ]]; then
        PART_TYPE="nor"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'qspi'` ]];then
        PART_TYPE="qspi"
      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'ospi'` ]];then
        PART_TYPE="qspi"

      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'sram'` ]];then
        PART_TYPE="sram"

      elif [[ `ls /sys/class/mtd/mtd$PART/device/driver/ | grep 'spi'` ]];then
        if [[ `cat /proc/mtd |grep -E "mtd$PART |mtd${PART}: "|grep -i qspi ` ]];then
          PART_TYPE="qspi"
        else
          PART_TYPE="spi"
        fi
      else
        die "/sys/class/mtd/mtd$PART/device/driver doesn't exist"
      fi
    fi
  else
    die "/sys/class/mtd/mtd$PART/type doesn't exist"
  fi
  echo $PART_TYPE
}

 

2.

->blk_device_dd_readwrite_test.sh

  ->get_blk_device_node.sh

    ->get_device_type_map.sh

before

if [ $DEVICE_TYPE = "nand" ] || [ $DEVICE_TYPE = "nor" ] || [ $DEVICE_TYPE = "spi" ] || [ $DEVICE_TYPE = "qspi" ] ; then
    DEV_TYPE="mtd"
fi

after

if [ $DEVICE_TYPE = "nand" ] || [ $DEVICE_TYPE = "nor" ] || [ $DEVICE_TYPE = "spi" ] || [ $DEVICE_TYPE = "qspi" ] || [ $DEVICE_TYPE = "sram" ]; then
    DEV_TYPE="mtd"
fi

 

3.

->blk_device_dd_readwrite_test.sh

  ->blk_device_prepare_format.sh

    ->blk_device_do_mount.sh

before

    case $DEV_TYPE in
        mtd)
            fs_to_try="jffs2:ubifs"
        ;;
        *)
            fs_to_try="vfat:ext3:ext4:ext2"
        ;;
    esac

after

    case $DEV_TYPE in
        mtd)
            case $DEVICE_TYPE in
                sram)
                    fs_to_try="ramfs"
                ;;
                *)
                    fs_to_try="jffs2:ubifs"
                ;;
            esac
        ;;
        *)
            fs_to_try="vfat:ext3:ext4:ext2"
        ;;
    esac

 

4.

sram_perf_ramfs

before

#do_cmd blk_device_umount.sh -n "$DEV_NODE" -d "$DEVICE_TYPE" -f "$FS_TYPE"
  do_cmd blk_device_umount.sh -m "$MNT_POINT"
    do_cmd "echo 3 > /proc/sys/vm/drop_caches"

    #do_cmd "mount -t $FS_TYPE -o $MNT_MODE $DEV_NODE $MNT_POINT"
  do_cmd blk_device_do_mount.sh -n "$DEV_NODE" -f "$FS_TYPE" -d "$DEVICE_TYPE" -o "$MNT_MODE" -m "$MNT_POINT"
    do_cmd filesystem_tests -read -file ${TEST_FILE} -buffer_size $BUFFER_SIZE -file_size $FILE_SIZE -performance
    do_cmd "sync"

after

  #do_cmd blk_device_umount.sh -n "$DEV_NODE" -d "$DEVICE_TYPE" -f "$FS_TYPE"

    if [ $FS_TYPE != "ramfs" ];then
        do_cmd blk_device_umount.sh -m "$MNT_POINT"
        do_cmd "echo 3 > /proc/sys/vm/drop_caches"

        #do_cmd "mount -t $FS_TYPE -o $MNT_MODE $DEV_NODE $MNT_POINT"
        do_cmd blk_device_do_mount.sh -n "$DEV_NODE" -f "$FS_TYPE" -d "$DEVICE_TYPE" -o "$MNT_MODE" -m "$MNT_POINT"
    fi
    do_cmd filesystem_tests -read -file ${TEST_FILE} -buffer_size $BUFFER_SIZE -file_size $FILE_SIZE -performance
    do_cmd "sync"

原因是ramfs umount之后内容都会消失,所以在测试过程中不能umount,加一层判断。

 

转载于:https://www.cnblogs.com/idyllcheung/p/10791829.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值