关于mtd字符设备的操作
来源:互联网 发布:sem优化是什么意思 编辑:程序博客网 时间:2024/05/22 07:41
关于mtd字符设备的操作2012-10-29 14:31:13
分类: LINUX
以nand flash(pagesize=2kB erasesize=pagesize*64)为基础。
擦除某个mtd设备:
struct erase_info_user argp;
argp.start = 0;
argp.length = 2048*64;
ioctl(fd,MEMERASE,&argp);
注意点:start和length都必须和erasesize对齐。
编程某个mtd设备:
write(fd,&buf,length);
注意点:length必须与页对齐(不包括oob区域)。
buf不能以栈方式给出。
读某个设备:
read(fd,&buf,length);
length只要不大于设备大小且offset需与页大小对齐。
最近要封装nor flash的接口,发现了两个比较明显的差异,第一就是nor flash的操作(包括擦除)都以字节为单位,另外就是nor flash的擦做非常慢,另外值得注意的是,对linux应用程序而言,mtd的操作不管是nand还是nor都是一样的,擦除都必须以块为单位,写必须以也为单位,读的位置也必须与页对齐,这跟linux的实现有关,如果实现不同可能操作就不会不同,比如cfe的读写就可以不以页对齐
擦除某个mtd设备:
struct erase_info_user argp;
argp.start = 0;
argp.length = 2048*64;
ioctl(fd,MEMERASE,&argp);
注意点:start和length都必须和erasesize对齐。
编程某个mtd设备:
write(fd,&buf,length);
注意点:length必须与页对齐(不包括oob区域)。
buf不能以栈方式给出。
读某个设备:
read(fd,&buf,length);
length只要不大于设备大小且offset需与页大小对齐。
最近要封装nor flash的接口,发现了两个比较明显的差异,第一就是nor flash的操作(包括擦除)都以字节为单位,另外就是nor flash的擦做非常慢,另外值得注意的是,对linux应用程序而言,mtd的操作不管是nand还是nor都是一样的,擦除都必须以块为单位,写必须以也为单位,读的位置也必须与页对齐,这跟linux的实现有关,如果实现不同可能操作就不会不同,比如cfe的读写就可以不以页对齐
0 0
- 关于mtd字符设备的操作
- 关于字符设备的操作目录
- mtd设备操作、jffs2
- mtd字符设备(mtdchar.c)
- 嵌入式linux里手工添加mtd字符设备的方法
- Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
- Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
- Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
- Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
- 字符设备的操作方式
- MTD 设备学习的笔记
- mtd块设备缓冲操作---mtdblock.c
- MTD驱动代码--有关mtd设备读写标志的分析
- 字符设备驱动程序的扩展操作
- 支持阻塞操作的字符设备驱动
- 字符设备打开操作的过程详解
- linux字符设备文件的打开操作
- 字符设备的注册与操作
- iOS开发笔记--连续跳转上层页面
- 可见光通讯,无需wifi就能上网。
- 2014-01-29-日志2
- 删除表外键
- 年前的最后一天_写给自己
- 关于mtd字符设备的操作
- 关于直接编写应用程序读写/dev/mtd0 或者 /dev/mtdblock0的问题。
- openjudge 计算概论-数组练习-错误侦测
- 我爱天文 - 天文软件知多少?
- 模板
- C# TabConTrol控件背景颜色问题
- (五)struts2- 2.3.15.3 spring3.2.4 mybatis-3.2.3 jquery.validationEngine表单验证
- mysql的数据库引擎都有什么
- 队列和堆栈实现二叉树的遍历