日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux下nand flash读写测试

發布時間:2024/8/1 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下nand flash读写测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nand flash讀寫測試

  • 引言
  • 測試步驟
  • 測試結果
  • 應用空間讀取nand flash中存儲的uboot鏡像

引言

??nand flash作為嵌入式系統中的常用設備,在嵌入式產品投入使用初期,需要進行一系列的讀寫測試,保證產品數據存儲的可靠性。nand flash常用的測試方法可分為以下幾內:

  • uboot階段,使用uboot中 nand 命令進行讀寫測試;
  • nand flash根文件系統(ubifs格式)中,使用 dd 命令進行測試;
  • 利用內核源碼下的驅動文件進行測試。
  • 本文主要講解Linux內核源碼下,nand 測試驅動的使用方法。



    測試步驟

  • Linux內核源碼下,除了系統運行所需的代碼,還提供了一些列Linux應用層的測試代碼,一般存儲在對應驅動模塊 tests 目錄下,只有編譯內核時進行配置,即可使用。

  • 通過make menuconfig 使能該驅動模塊。

  • 將編譯好的驅動拷貝到開發板,并查看nand flash的分區情況

  • insmod mtd_speedtest.ko dev=3 count=100

    • dev=3 指的是當前的 mtdblock3 所掛在的MTD設備,例如當前使用的是nor flash的MTD分區3。
    • count=100 指的是循環測試的次數。


    測試結果

  • 擦除塊寫速度: 1824 KiB/s
  • 擦除塊讀速度: 3273 KiB/s
  • 頁寫速度:1820 KiB/s
  • 頁讀速度:3307 KiB/s
    ……
  • 應用空間讀取nand flash中存儲的uboot鏡像

    ??



    #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <fcntl.h>#define DEV "/dev/mtd1" // 該分區存放 uboot #define MAX_BUF 10240000 // 10M char *buf = NULL;int main(int argc, char **argv) {int flag;int fdr , fdw;fdr = open(DEV, O_RDONLY);if (fdr == -1) {perror("open dev");return -1;}if (access("uboot", F_OK) == 0) {printf("uboot exists\n");unlink("uboot");}fdw = open("uboot", O_WRONLY | O_CREAT);if (fdw == -1) {perror("open file");return -2;}buf = (char *)malloc(MAX_BUF);flag = read(fdr, buf, MAX_BUF);if (flag < 0) {perror("read");return -3;}flag = write(fdw, buf, MAX_BUF);if (flag < 0) {perror("write");return -4;}system("sync");free(buf);buf = NULL;close(fdr);close(fdw);return 0; }

    總結

    以上是生活随笔為你收集整理的Linux下nand flash读写测试的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。