日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下nand flash读写测试

發布時間:2024/8/1 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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读写测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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