Linux下nand flash读写测试
生活随笔
收集整理的這篇文章主要介紹了
Linux下nand flash读写测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
nand flash讀寫測試
- 引言
- 測試步驟
- 測試結果
- 應用空間讀取nand flash中存儲的uboot鏡像
引言
??nand flash作為嵌入式系統中的常用設備,在嵌入式產品投入使用初期,需要進行一系列的讀寫測試,保證產品數據存儲的可靠性。nand flash常用的測試方法可分為以下幾內:
本文主要講解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 指的是循環測試的次數。
測試結果
……
應用空間讀取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读写测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript异步机制 — cal
- 下一篇: 安装SqlServer 2017 时出现