Zynq_Mp----SSDファイルの読み書き速度をテストする

1577 ワード

SSDを使用する場合、まずLinuxシステムによって/dev/sdaデバイスファイルノードが識別され、以下がテスト手順である.
  • マウント/dev/sda


  •      ① mkfs.vfat -F 32 /dev/sda
         ② mount /dev/sda /mnt
    ③cd/mntはmntディレクトリに入り、SSDディレクトリに入ることに相当する
  • テスト時間


  • int gettimeofday(struct timeval tv,struct timezone*tz)この関数は、今日未明から現在までの時間差を取得するために使用され、イベントの消費時間によく使用されます.
          struct timeval { int tv_sec;int  tv_usec;}
    linuxテスト時間差のプログラムは以下の通りです.
     
         double GetTime(void)
          {
              struct timeval t;
              gettimeofday(&t, NULL);
              return (t.tv_sec + 1E-6 * t.tv_usec);
          }
  • 読み書き速度のプログラム

  • #include
    #include
    #include
    
    #define DATA_SIZE         1024*1024*1024
    #define M_DATA_SIZE     1024*1024
    
    double GetTime(void)
    {
        struct timeval t;
        gettimeofday(&t, NULL);
        return (t.tv_sec + 1E-6 * t.tv_usec);
    }
    
    
    int main()
    {
        unsigned int i;
        unsigned int SSDReadRate = 0;
        unsigned int SSDWriteRate = 0;
    
        double  TimeReadStart = 0.00;
        double  TimeReadTotal = 0.00;
        double  TimeWriteStart = 0.00;
        double  TimeWriteTotal = 0.00;
    
        unsigned char SSDReadData[1024] = {0};
        unsigned char SSDWriteData[1024] = {0};
        FILE *pWrite_FILE = NULL;
        FILE *pRead_FILE = NULL;
    
        for(i=0; i<1024; i++)
        {
            SSDWriteData[i] = i % (0xFF);
        }
    
        //Write Process
        TimeWriteStart = GetTime();
        pWrite_FILE = fopen("SSD_Write.bin", "wb+");
        for(i=0; i