Linux下按扇区读写块设备,Linux下按扇区读写块设备
本文介绍Linux下按扇区读写块设备(示例TF卡),实际应用是在Android系统上,主要方法如下:
1、找到sdcard的挂载点,在android2.1系统下应该为/dev/block/mmcblk0p1,或是/dev/block/mmcblk0,而不是/sdcard或/mnt/sdcard
2、修改权限,默认是没有权限按扇区读写块设备的(下文打开句柄为空),连接手机到计算机,通过adb Shell进入手机,将/dev/block/mmcblk0p1权限设置成777,命令如下:
chmod 777 -R /dev/block/mmcblk0p1
3、编写读写程序,示例代码如下
int fd = open("/dev/block/mmcblk0", O_RDWR|O_DIRECT,606);
4、编译并安装到手机上,就可以对扇区直接操作。
附读写扇区程序(参数第一个是文件句柄,第二个是读写缓冲区):
int WriteSectors(int fd, char *p){
//lseek(fd, 0 ,SEEK_SET);
//if (lseek(fd, 1024, SEEK_CUR) == -1 ){
// return (-1);//seek failed
//}
if (lseek(fd, 1024 ,SEEK_SET) == -1 ){
return (-1);//seek failed
}
return write(fd, p, 512);
}
int ReadSectors(int fd, char *p){
//lseek(fd, 0 ,SEEK_SET);
//if (lseek(fd, 1024, SEEK_CUR) == -1 ){
// return (-1);//seek failed
//}
if (lseek(fd, 1024 ,SEEK_SET) == -1 ){
return (-1);//seek failed
}
return read(fd, p, 512);
}
上面的发送接收缓冲区必须符合内存对齐:
char* iobuf = NULL;
iobuf = memalign(getpagesize(),getpagesize());//2.6version = 512;
---------------------
作者:xrdeng
来源:CSDN
原文:https://blog.csdn.net/xuerongdeng/article/details/78289132
版权声明:本文为博主原创文章,转载请附上博文链接!
Linux下按扇区读写块设备,Linux下按扇区读写块设备相关推荐
- linux读写usb host,LINUX下USB1.1设备学习小记(3)_host与device
各位还记得"任何传输都是由host发起的"这句话么~ 在usb设备插入pc中到拔出usb设备,都是由host进行询问的 一个usb鼠标的工作流程可以表达如下: usb鼠标插入pc中 ...
- Linux内核:一文读懂文件系统、缓冲区高速缓存和块设备、超级块
目录 前言 第一部分 Linux文件系统堆栈 VFS数据结构 文件系统初始化顺序 Dentries 打开文件-说起来容易做起来难! 虚拟文件系统 前言 第二部分 Linux文件系统堆栈 当我们键入&q ...
- 基于块的linux驱动程序,基于块的Linux驱动程序 块设备驱动 centos内核编译过程 操作系统课程设计...
操作系统的课程设计,本人也是一头雾水地做完了课程设计,在这里贴下操作过程,放下当时参考的一篇CSDN文章链接:https://blog.csdn.net/cxy_chen/article/detail ...
- linux 查看led设备,Linux下LedButton设备驱动——详细设计
数据结构 点击(此处)折叠或打开 struct pca9555_led { u8 id; struct i2c_client *client; char *name; struct led_class ...
- Linux下的硬件驱动——USB设备(下)
Linux下的硬件驱动--USB设备(下)(驱动开发部分) 文档选项 打印本页 将此页作为电子邮件发送 未显示需要 JavaScript 的文档选项 级别: 初级 赵明, 联想软件设计中心嵌入式研发处 ...
- linux mtd 块设备,Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别...
转:http://www.crifan.com/linux_system_in__dev__mtd_and__dev__mtdblock_distinction_character_devices_a ...
- linux dd命令制作软盘,[Ubuntu]dd 命令,软盘读写实例:二进制文件.bin -镜像文件 .img - 软盘设备 /dev/fd0...
本文将利用linux的dd命令往软盘的0道0面1扇区(即主引导扇区)写入数据: 实现在屏幕上显示asm这个三个字符的功能: 由于Ubuntu系统以软盘(floppy disk)作为启动盘,当选择系统从 ...
- Linux 设备树下的 platform 驱动示例
1.简介 基于总线.设备和驱动这样的驱动框架,Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动. Linux 总线设备和驱动模式 2 ...
- linux终端输入lsblk无命令,使用Linux的lsblk命令列出块设备信息
lsblk(列出块设备)命令用于列出所有可用块设备的信息,但是,它不会列出RAM盘的信息.块设备有硬盘,闪存盘,CD-ROM等等. 如何安装lsblk lsblk命令包含在util-linux-ng包 ...
- S3C2440 Linux下的I2C驱动以及I2C体系下对EEPROM进行读写操作。
这篇文档算上期末复习这段时间其实拖了有好久了,因为从一开始接触linux的i2c驱动体系我就各种凌乱,因为起初脑海中既没有整体框架也不熟悉相关体系下的结构,所以四处乱看,经常性的在看内核代码时看着看着 ...
最新文章
- OpenCV学习笔记(二):3种常用访问图像中像素的方式
- python 判断是否有余数_判断多个坐标是否在同一条直线上|Python练习系列[13]
- php5.3 延迟静态绑定 static关键字
- 如何在TensorFlow中通过深度学习构建年龄和性别的多任务预测器
- [白开水]-maven的命令程序mvn脚本分析
- 炫天塔罗占卜结果......
- 给GridView分页
- python单向循环链表_python实现单向循环链表 -- 详细思路分析
- 计算机web程序开发,基于WEB的计算机应用基础考试系统的开发与设计
- 连接Access数据库的Provider错误
- 最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
- Oracle数据库 - 安装教程
- MAX30102学习笔记(下)
- 走进龙芯3A3000(三)在Gentoo N64上安装xorg-server
- 10个值得推荐的免费设计模板网站
- 第1章 Cookie模拟登录(1.1 模拟登录的原理)
- 程序员真的需要读研究生么?
- 卸载xampp并重装mysql
- 钟情于物流企业信息化
- android 应用程序Activity管理类
热门文章
- Fedora13安装Gnome-shell
- 关于对cross-browser支持的一些看法
- Visual Studio 2005 Beta 2 will ship on April 25th
- OllyDbg完全教程
- boost智能指针之shared_ptr,scoped_ptr,intrusive_ptr,weak_ptr源码简析
- Zedboard学习(六):XADC读取数据
- main函数中argc的区别argv
- 【机器学习入门笔记0:OpenCV+TensorFlow学习内容(目录)】20190122
- Apollo 8 — ConfigService 异步轮询接口的实现
- tcpdump抓取mysql语句