nand flash读写测试

  • 引言
  • 测试步骤
  • 测试结果
  • 应用空间读取nand flash中存储的uboot镜像

引言

  nand flash作为嵌入式系统中的常用设备,在嵌入式产品投入使用初期,需要进行一系列的读写测试,保证产品数据存储的可靠性。nand flash常用的测试方法可分为以下几内:

  1. uboot阶段,使用uboot中 nand 命令进行读写测试;
  2. nand flash根文件系统(ubifs格式)中,使用 dd 命令进行测试;
  3. 利用内核源码下的驱动文件进行测试。

本文主要讲解Linux内核源码下,nand 测试驱动的使用方法。


测试步骤

  1. Linux内核源码下,除了系统运行所需的代码,还提供了一些列Linux应用层的测试代码,一般存储在对应驱动模块 tests 目录下,只有编译内核时进行配置,即可使用。

  2. 通过make menuconfig 使能该驱动模块。

  3. 将编译好的驱动拷贝到开发板,并查看nand flash的分区情况

  4. insmod mtd_speedtest.ko dev=3 count=100

  • dev=3 指的是当前的 mtdblock3 所挂在的MTD设备,例如当前使用的是nor flash的MTD分区3。
  • count=100 指的是循环测试的次数。

测试结果

  1. 擦除块写速度: 1824 KiB/s
  2. 擦除块读速度: 3273 KiB/s
  3. 页写速度:1820 KiB/s
  4. 页读速度: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读写测试相关推荐

  1. nand flash 经典 全面 ------如何编写Linux下Nand Flash驱动

    Crifan Li 摘要 本文先解释了Nand Flash相关的一些名词,再从Flash硬件机制开始,介绍到Nand Flash的常见的物理特性,且深入介绍了Nand Flash的一些高级功能,然后开 ...

  2. 如何编写linux下nand flash驱动

    http://www.cnblogs.com/sankye/articles/1638852.html 向作者Sankye致敬 [编写驱动之前要了解的知识] 1.       硬件特性: [Flash ...

  3. linux下nand flash驱动工作原理,Linux驱动之Nand Flash四问,原理、工作方式都包含了...

    Nand Flash 是一个存储芯片.本文引用地址:http://www.eepw.com.cn/article/201801/374606.htm 那么:这样的操作很理"读地址A的数据,把 ...

  4. Linux下磁盘IO读写测试工具-FIO详解

    FIO简介 FIO是Linux下开源的一款IOPS测试工具,主要用来对磁盘进行压力测试和性能验证. 它可以产生许多线程或进程来执行用户特定类型的I/O操作,通过编写作业文件(类似于k8s的yaml)或 ...

  5. linux下nand flash驱动工作原理,Linux下Nand Flash 驱动代码分析

    随着越来越多的平台支持从Nand Flash 中启动,掌握Nand Flash 的驱动编写有着重要的现实意义,由于内核已经完成了大部分的工作,实际工作中大部分工程师对Nand Flash 驱动只是简单 ...

  6. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理

    1.3.4. Nand flash驱动工作原理 在介绍具体如何写Nand Flash驱动之前,我们先要了解,大概的整个系统,和Nand Flash相关的部分的驱动工作流程,这样,对于后面的驱动实现,才 ...

  7. 基于STM32F429IGT6的NAND FLASH读写测试(CUBEMX)

    本文基于W29N01HV这款NAND FLASH芯片进行讲解,这款芯片的讲解在网上的资料真的很少,关于这款flash的datasheet我会免费共享出来.(如果觉得本文对你没什么帮助可参考:NAND ...

  8. uboot下nand flash读写方法_鸿蒙HarmonyOS烧录方法总结

    1.烧录工具 理解HarmonyOS驱动框架,用户态APP和内核态驱动之间的通信机制. HarmonyOS烧录使用的海思自研的烧录工具Hitool,使用起来相对来说比较简单.整体界面如图所示: 2.  ...

  9. linux测试读写的工具,Linux 下的硬盘读写速度测试工具

    Linux 下的硬盘读写速度测试工具 执行一下以下命令看看你服务器的磁盘性能如何. hdparm -Tt /dev/sda 以下是 2块 希捷 ES2 SATA 500G 做 Raid0 的速度 [r ...

  10. 模拟NAND FLASH 读写BCH ECC校验

    一.模拟NAND FLASH 读写BCH ECC校验 将内核源码里的bch校验程序分离出来,从而可以手动修改原始数据和bch校验码,达到模拟出错纠正过程. 源码 bch.c.bch.h.types.h ...

最新文章

  1. Android中怎么使图片显示
  2. Android 多进程调试技巧
  3. 同步通信和异步通信区别
  4. 图解.net程序集赋予强名称
  5. 激励员工的首席执行官以及他们的秘诀
  6. EventLoopGroup 的实例化
  7. python 项目环境包的名称和版本导出和导入
  8. bit java实验2_2018-2019-2 20175120 实验五《Java网络编程》实验报告
  9. android对象关系映射框架ormlite之一对多(OneToMany)
  10. IDEA 常用设置 与 常用操作(一)
  11. 安徽省月度降水量分布数据
  12. 在vue2.0下安装axios
  13. c语言实验报告模板电子版,C语言实验报告模板.doc
  14. renderTo和applyTo的区别
  15. phpcms开发微信小程序api
  16. bzoj 3332 旧试题
  17. 以太坊之最全攻略解析与案例分享
  18. 为女性们点赞!Google 为女性提供更多支持
  19. [游戏代码]求生之路插件:人物获得武器
  20. 2021 ICCV论文分享 | 遮挡边界检测

热门文章

  1. mysql源码解读——事务管理
  2. 【Python精彩案例】随拍文档转PDF扫描版
  3. 小米手机线刷教程详解
  4. 小米线刷包需要解压么_小米6详细的线刷教程,手把手教你降级
  5. 从零开始设计一款APP之Android设计规范篇
  6. 地脚螺钉直径系列_地脚螺栓规格
  7. win7用计算机名共享打印机,WIN7共享打印机 可以同时多少台电脑共享一台打印机-win7一键共享打印机,win7一键共享工具软件...
  8. 深度学习之语义分割(SegNet)
  9. 解析AI漫画系统CariGAN:这效果让漫画师颤抖!
  10. 2022-2028年中国海上石油勘探行业市场研究及前瞻分析报告