搜档网
当前位置:搜档网 › android4.0中关于内外置sd卡的获取及读写权限问题

android4.0中关于内外置sd卡的获取及读写权限问题

android4.0中关于内外置sd卡的获取及读写权限问题
android4.0中关于内外置sd卡的获取及读写权限问题

1. 在android4.0源码出来以后,关于sd卡问题似乎没有解决好,起码上层api中没

有体现到位。其实在framework层中有相应的类去获得内外置sd卡信息,是否

可读写的权限。

在2.x的版本中,在manifest中配置的权限

android.permission.WRITE_EXTERNAL_STORAGE确实是用来使得sd卡获得写的权限。而在4.0开发的源码当中,由于有了内外置sd卡的区分,android.permission.WRITE_EXTERNAL_STORAGE的权限用来设置了内置sd卡的写权限,如果在manifest中只是配置了这个权限,那个应用只能在内置sd卡中进行写操作,还是无法在外置sd卡中进行写操作。需要写外置sd 卡的话,需要配置另一个权限

android.permission.WRITE_MEDIA_STORAGE,这样就可以在外置sd卡中进行写入操作了。

这两个权限都被定义在 android源码目录

\frameworks\base\data\etc\platform.xml中:

[html]view plaincopyprint?

1.

2.

3.

4.

5.

6.

7.

使用到的类主要是framework/base/core/java/android/os/storage/StorageVolume.java及相同目录下的StorageManager.java文件。

StorageManager类可以获得所有的存储媒体列表,及StorageVolume类型的数组,从而可以获得对应存储是否可读写一类的信息。

希望可以帮助遇到相同问题的童鞋。

Ubuntu 文件查看权限和设置权限

ubuntu下查看权限的命令为: ls -l filename ls -ld folder ubuntu下设置权限的命令为: 一共有10位数 其中:最前面那个- 代表的是类型 中间那三个rw- 代表的是所有者(user) 然后那三个rw- 代表的是组群(group) 最后那三个r-- 代表的是其他人(other) 然后我再解释一下后面那9位数: r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话)- 表示相应的权限还没有被授予

现在该说说修改文件权限了 在终端输入: chmod o+w xxx.xxx 表示给其他人授予写xxx.xxx这个文件的权限 chmod go-rw xxx.xxx 表示删除xxx.xxx中组群和其他人的读和写的权限 其中: u 代表所有者(user) g 代表所有者所在的组群(group) o 代表其他人,但不是u和g (other) a 代表全部的人,也就是包括u,g和o r 表示文件可以被读(read)

w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) 其中:rwx也可以用数字来代替 r ------------4 w -----------2 x ------------1 - ------------0 行动: + 表示添加权限 - 表示删除权限 = 表示使之成为唯一的权限 当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:

-rw------- (600) 只有所有者才有读和写的权限 -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 -rwx------ (700) 只有所有者才有读,写,执行的权限 -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 -rw-rw-rw- (666) 每个人都有读写的权限 -rwxrwxrwx (777) 每个人都有读写和执行的权限 sudo chmod 600 ×××(只有所有者有读和写的权限) sudo chmod 644 ×××(所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ×××(只有所有者有读和写以及执行的权限) sudo chmod 666 ×××(每个人都有读和写的权限) sudo chmod 777 ×××(每个人都有读和写以及执行的权限)

SD卡的使用经验总结

由于自己也在使用SD卡,使用的过程中也遇到了一些问题,通过各方的总结,现将其整理一下,调试关键点: 1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。 3. 理论上要求发送CMD58获得SD卡电压参数,但实际过程中由于事先都知道了SD 卡的工作电压,因此可省略这一步简化程序。协议书上也建议尽量不要用这个命令。 4. SD卡读写超时时间要按照协议说明书书上的给定值(读超时:100ms;写超时:250ms),这个值要在程序中准确计算出来,否则将会出现不能正常读写数据的问题。我自己定义了一个计算公式:超时时间=(8/clk)*arg。 5. 2GB以内的SD卡(标准卡)和2GB以上的SD卡(大容量卡)在地址访问形式上不同,这一点尤其要注意,否则将会出现无法读写数据的问题。如标准卡在读写操作时,对读或写命令令牌当中的地址域符初值0x10,表示对第16个字节以后的地址单元进行操作(前提是此SD卡支持偏移读写操作),而对大容量卡读或写命令令牌当中的地址域符初值0x10时,则表示对第16块进行读写操作,而且大容量卡只支持块读写操作,块大小固定为512字节,对其进行字节操作将会出错。 6. 对某一块要进行写操作时最好先执行擦出命令,这样写入的速度就能大大提高。进行擦除操作时不管是标准卡还是大容量卡都按块操作执行,也就是一次擦除至少512字节。 7. 对标准卡进行字节操作时,起始和终止必须在一个物理扇区内,否则将不能进行读写操作。实际操作过程中建议用块操作以提高效率。不管是标准卡还是大容量卡一个读写命令只能对一个块进行操作,不允许跨物理层地址操作。 8. 在写数据块前要先写入若干个dummy data字节,写完一个块数据时,主机要监测MISO数据线,如果从机处于忙状态这根数据线会保持低电平,这样主机就可以根据这根数据线的状态以决定是否发送下一个命令,在从机没有释放MISO数据线之前,主机绝对不能执行其他命令,否则将会导致写入的数据出错,而且从机也不会响应主机的命令。 9. 在SPI模式下,CRC校验是被忽略的,但依然要求主从机发送CRC码,只是数值可以是任意值,一般主机的CRC码通常设为0x00或0xFF。 读多块操作和写多块操作的传输停止形式不一样,读多块操作时用用命令CMD12终止传输,而写多块操作时用Stop Tran Token(停止传输令牌,值为0xFD)终止传输。

单片机读写SD卡API模式读写

单片机读写SD卡最简单最基本的程序 处理器:s3c44b0 (arm7) SD卡与处理器的引脚连接:MISO -->SIORxD MOSI -->SIOTxD CLK -->SCLK CS -->PE5 四个文件::用户API函数,移植时不需修改 :中间层函数,移植时不需修改 :硬件层函数,移植时需修改 :一些功能的宏定义,移植时需修改 第一次读写SD卡时,需调用SD_Init(void),然后就可以条用Read_Single_Block或者Write_Single_Block进行读写操作 注意:进行写操作时,最好不要写前700个扇区,应为这些扇区都是FAT文件系统的重要扇区,一旦误写则可能会导致SD无法被电脑识别,需格式化。 /******************************************************* 文件名: 作用:用户API函数,包括四个函数, 读取一块扇区(512字节)U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) 写一个扇区(512字节)U8 Write_Single_Block(U32 blk_addr, U8 *tx_buf) 获取SD卡基本信息,即读CSD寄存器信息(16字节):void SD_info() SD卡初始化:U8 SD_Init(void) ********************************************************/

/******************************************** 功能:读取一个block 输入:blk_addr为第几个block,rx_buf为数据缓存区首地址输出:返回NO_ERR则成功,其它则读取失败 ********************************************/ U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) { U16 rsp = 1; U8 i = 0; SD_sel(); //使能SD卡 while(rsp && (i < 100)) { write_cmd(CMD17, blk_addr << 9); //写命令CMD17 rsp = Get_rsp(R1); //获取答应 send_clk(); } if(i > 99) //如果命令超时,则执行超时处理 {

改变用户组文件的读写和执行权限

改变用户组文件的读写和执行权限 网上找来一篇关于linux权限修改方式文章,对于我脑子记性不好的人有非常大的帮助 1. 更改档案拥有者 命令: chown [-cfhvR] [--help] [--version] user[:group] file... 功能: 更改文件或者文件夹的拥有者 参数格式: user : 新的档案拥有者的使用者IDgroup : 新的档案拥有者的使用者群体(group) -c : 若该档案拥有者确实已经更改,才显示其更改动作 -f : 若该档案拥有者无法被更改也不要显示错误讯息 -h : 只对于连结(link)进行变更,而非该link 真正指向的档案 -v : 显示拥有者变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更) 例如:chown -R oracle:oinstall /oracle/u01/app/oracle 更改目录拥有者为oracle 2. 修改权限 命令:chmod (change mode)

功能:改变文件的读写和执行权限。有符号法和八进制数字法。 选项:(1)符号法: 命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename u (user) 表示用户本人。 g (group) 表示同组用户。 o (oher) 表示其他用户。 a (all) 表示所有用户。 + 用于给予指定用户的许可权限。 - 用于取消指定用户的许可权限。 = 将所许可的权限赋给文件。 r (read) 读许可,表示可以拷贝该文件或目录的内容。 w (write) 写许可,表示可以修改该文件或目录的内容。 x (execute)执行许可,表示可以执行该文件或进入目录。 (2)八进制数字法: 命令格式:chmod abc file 其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。

SanDisk SD Card产品手册之四SD卡协议描述续二

上周看了卡的识别模式后,现在看看卡的数据传输模式,这是最重要的模式,勿庸置疑。 因为一些卡可能有时钟限制,fpp必须保持在fod,直到CSD寄存器被host读取。host发出SEND_CSD(CMD9)来得到一些卡的专用数据,比如block length等等。 CMD7可以将卡置在传输模式。只有一个卡可以在一个时间内在这个状态。如果一个之前的卡在这个状态,那么与host的连接将会释放,并且回到stand-by 模式,当CMD7被发出保留相关卡地址0x0000,所有的卡传输都回到stand-by 状态。这个可以用来识别新插入卡,并且不会重置以及注册的卡。以及有RCA 的卡,不需要对识别命令相应。 *取消选择发生在一个特定的卡在重试CMD7的时候,发现RCA不匹配。在另外一个卡和CMD线通用的时候,会自动发生。因此,在SD卡系统中,系统需要负责做二选其一的事情。 -初始化后,通过公用CMD线工作,在这个情况下,取消选择会自动发生 -有意识去取消选择,如果CMD线是分开的 所有的数据通信在数据传输模式都是点对点的。所有的命令都会有个在CMD线上的相应。 下面我们看下卡里的命令。 1 停止命令CMD12,能够忽略所有的读命令在任何时候,数据传输会中止,并且卡会返回到传输状态,读命令能够阻止块读CMD17,多块读CMD18,发送写保护CMD30,发送SCR ACMD51,和general命令在读模式中CMD56。 2 停止命令CMD12,能够中止所有的数据写命令在任何时候。写命令必须在取消选择CMD7之前停止。写命令被块写CMD24、CMD25,写CSD(CMD27),锁和解锁(CMD42),和在写模式的通用命令(CMD56)阻止。 3 当数据传输完成的时候,sd卡会在数据写状态。之后如果写成功了,那么就去编程状态,如果失败了,就去传输状态。 4 如果block写操作被停止,并且block长度的crc是有效的,数据会被写入。

SD卡-中文学习笔记

SD卡操作 一、概述 1、简介 SD卡是基于flash的存储卡。 SD卡和MMC卡的区别在于初始化过程不同。 SD卡的通信协议包括SD和SPI两类。 SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍 2.1 特点 1)主机无关的FLASH内存擦除和编程 读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。当采用新型的FLASH时,主机代码无需更新。 2)缺陷管理 3)错误恢复 4)电源管理 Flash每个扇区有大约10万次的写寿命,读没有限制。 擦除操作可以加速写操作,因为在写之前会进行擦除。 3 SD总线模式 3.1 Negotiating Operation Conditions 当主机定义了SD卡不支持的电压范围时,SD卡将处于非活动状态,将忽略所有的总线传输。要退出非活动状态唯一的方法就是重新上电。 3.2 SD卡获取和识别 SD卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。主机依次分别访问每个卡,每个卡的CID寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。 主机通过READ_CID命令读取CID寄存器。CID寄存器在SD卡生产过程中的测试和格式化时被编程,主机只能读取该号。 DAT3线上内置的上拉电阻用来侦测卡。在数据传输时电阻断开(使用ACMD42)。

3.3 卡状态 卡状态分别存放在下面两个区域: 卡状态(Card Status),存放在一个32位状态寄存器,在卡响应主机命令时作为数据传送给主机。 SD状态(SD_Status),当主机使用SD_STATUS(ACMD13)命令时,512位以一个数据块的方式发送给主机。SD_STATUS还包括了和BUS_WIDTH、安全相关位和扩展位等的扩展状态位。 3.4 内存组织 数据读写的基本单元是一个字节,可以按要求组织成不同的块。

STM32读写SD卡要点

3.20SD卡实验 很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,有几种体积的尺寸可供选择(标准的SD 卡尺寸,以及TF卡尺寸),能满足不同应用的要求。只需要4个IO口,就可以外扩一个最大达32GB以上的外部存储器,容量选择尺度很大,更换也很方便,而且方便移动,编程也比较简单,是单片机大容量外部存储器的首选。 ALIENTKE MiniSTM3开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。本节将向大家介绍,如何在ALIENTEK MiniSTM32开发板上读取SD卡。本节分为如下几个部分: 3.20.1 SD卡简介 3.20.2 硬件设计 3.20.3 软件设计 3.20.4 下载与测试

3.20.1 SD卡简介 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。 SD卡一般支持2种操作模式: 1,SD卡模式; 2,SPI模式; 主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。 SD卡的引脚排序如下图所示: 图3.20.1.1 SD卡引脚排序图 SD卡引脚功能描述如下表所示: 表3.20.1.1 SD卡引脚功能表 SD卡只能使用3.3V的IO电平,所以,MCU一定要能够支持3.3V的IO端口输出。 注意:在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。 SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD0)时,CS为有效电平(低电平)则SPI模式被启用。不过在发送CMD0之前,要发送>74个时钟,这是因为SD卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400Khz!。 ALENTEK MiniSTM32开发板使用的是SPI模式来读写SD卡,下面我们就重点介绍一下SD卡在SPI模式下的相关操作。 首先介绍SPI模式下几个重要的操作命令,如下表所示:

sd卡协议(中文)

数据包的封装与命令协议相关 1 sd 卡指令数据包 sd 卡的指令被封装成48位的数据包,每次传送这48位的数据包。数据包的内容包括起始位、结束位、传输位、命令索引、传输参数和7位CRC 校验码。其具体格式分布如下图 Bit 位置 47 46 [45:40] [39:08] [07:01] 00 Bit 宽度 1 1 6 32 7 1 值 “0” “1” x x x “1” 说明 Start bit Transmission bit Command index Argument CRC7 End bit 其中的命令索引位是[45:40],里面可以封装各种命令,具体的命令表将在下面给出。不同的命令会对应不同的回应(respond),回应有三种(R1,R2,R3)格式,在命令表中的选项会给出。 2 sd 卡命令索引表 CMD 简略语 指令说明 SPI 模式 自变量 回应 0 GO_IDLE_STATE 这是使card 初始化到Idle 状态的指令.CS 信号设在Low 的状态时,接到本指令后,card 将转换到SPI 模式. None R1 1 SEND_OP_COND 接到本指令后,card 将做R3回应(含有OCR 数据).根据OCR 值,可以得知card 能工作电压范 围.OCR 数据最高值位的1bit 是用来确认card 内部处理是否结束(Ready/Busy 轮询). None R1 2 ALL_SEND_CID 接到本指令后, 处于Ready 状态的card 将传送CID 数据.在MMC 模式下,数据被送到CMD 信

号,在CID数据的 每1bit传送 后,CMD信号状 态将与该card内 部状态相比较,如 果不一致,將中止 数据传送,card返 回到Ready状态. 如果相一致,该 card 将认为已被 选中,然后转换到 Identification 状 态. 3 SET_RELATIVE_ADDR 本指令会为已转 换到Identification 状态的card分配 一个相对card地 址(RCA).当RCA 分配后,card将转 换到Stand-by 状 态,对以后的 CMD2和CMD3 不回应. 4 NOP 这是用来设定 DSR(DriveState 寄存器)的指令, 但是本car不支持 DSR. 7 SELECT/DESELECT_CARD本指令是用来选 择一张card,让它 在Stand-by状态 和Transfer状态之 间转换的指令.如 果给card设定已 分配到的RCA地 址,card将从 Stand-by状态转 换到Transfer状 态,并将回应以后 的读取指令及其 他指令.如果给 card设定RCA以 外的地址,card将 转换到Stand-by

SD卡读写包括两种模式

SD卡读写包括两种模式:SD模式和SPI模式。其中SD模式又可以分为1bit 和4bit两种传输模式。SD卡缺省使用专有的SD模式。SD卡规范中主要讲了一些命令,响应和CRC效验等等,整个规范的内容还是很多的。 SD卡上电后,卡处于空闲状态,主机发送CMD0复位SD卡,然后通过CMD55和ACMD41判断当前电压是否在卡的工作范围内。在得到了正确的响应后,主机可以继续通过CMD10读取SD卡的CID寄存器,通过CMD16设置数据块长度,通过CMD9读取卡的CSD寄存器。从CSD寄存器中,主机可以获知卡容量,支持的命令集等重要参数。此时,卡以进入了传输状态,主机就可以通过CMD17/18和CMD24/25对卡进行读写。CRC校验是为了防止SD卡的命令,应答,数据传输出现错误。每个命令和应答信号都会产生CRC效验码,每个数据块的传输也会长生CRC效验码。 这段程序是友善之臂推出的mini2440开发板中带的ADS测试源码。整个阅读代码的过程是对这S3C2440的芯片手册和SD卡规范来看的,对于MMC卡没有给出注释,其实和SD卡是大同小异。由于是初次接触ARM,对SD规范的认识也不是很深入,再加上自己水平有限,还不能完全读懂源代码,其中的肯定存在一些错误,欢迎大家一起交流讨论。

#define INT 1 #define DMA 2 int CMD13(void);// Send card status int CMD9(void); unsigned int*Tx_buffer;//128[word]*16[blk]=8192[byte] unsigned int*Rx_buffer;//128[word]*16[blk]=8192[byte] volatile unsigned int rd_cnt;//读数据计数器 volatile unsigned int wt_cnt;//写数据计数器 volatile unsigned int block;//读写块总数 volatile unsigned int TR_end=0; int Wide=0;// 0:1bit, 1:4bit int MMC=0;// 0:SD , 1:MMC int Maker_ID; char Product_Name[7]; int Serial_Num; volatile int RCA; void Test_SDI(void) { U32 save_rGPEUP, save_rGPECON; RCA=0;

Linux文件和目录读写执行权限解析

文件和目录读写执行权限解析 对于文件:(以下对文件权限的测试是在上层目录权限为777的情况下完成的) ●可读:表示可以读取复制文件的内容 ●可写:表示可以修改文件的内容 ●可执行:表示可以用其他解析程序对文件进行执行操作 ●仅可读:只有可读权限则只能读取文件内容和复制该文件,不可改写文件内容,此时该 文件的删除移动权限由上层目录权限决定,如果其上层目录拥有删除移动的权限,可以对其进行删除移动操作。 ●仅可写:如果只有可写权限而无可读执行权限,既不能读取和改写该文件内容,也不能 执行文件,且不可复制文件,此时该文件的删除移动权限由上层目录权限决定。 ●仅可执行:只有可执行权限时不可读取和改写该文件内容,也不可复制该文件,好像也 并不能作为脚本执行,此时该文件的删除移动权限由上层目录权限决定。 所以,通常要对文件具有写权限,需要同时具有可读和可写,要对文件具有执行权限,需要同时具有可读和可执行。 对于目录:(以下对目录权限的测试是在所涉及文件权限为777的情况下完成的) ●可读:表示可以列出目录本身和目录下面的文件和子目录的属性,仅查看属性(ls) ●可写:表示可以往目录中添加删除文件和目录 ●可执行:表示可以读取该目录下面的文件内容或者改写文件内容(在文件权限允许的情 况下) ●仅可读:目录的读权限仅允许我们读目录,获得在该目录中所有文件名的列表,不可添 加删除其中的文件或目录,也不可读取和改写其中文件的内容。 ●仅可写:如果只有写权限,仍然无法往目录中添加删除或修改文件和子目录,包括复制 和移动。要修改目录中的文件内容,不仅仅需要目录的写权限,还需要目录的执行权限。 ●仅可执行:对目录没有读写权限,只有执行权限,一样可以读取和改写目录下面文件的 内容(只要你确定该路径下的该文件存在);那是否不需要目录的可写权限呢?当然不是,如果没有可写权限,无法往目录中添加删除或修改文件和子目录,包括复制和移动。

SD卡协议-中文

一概述 1. SD总线模式下 CLK:时钟信号 CMD:双向命令和响应信号 DAT0-3:双向数据信号 VDD,VSS:电源和地信号 SD模式下允许有一个主机, 多个从机(即多个卡), 主机可以给从机分别地址. 主机发 命令有些命令是发送给指定的从机,有些命令可以以广播形式发送. SD模式下可以选择总线宽度, 即选用几根DAT信号线, 可以在主机初始化后设置. 2. SD总线协议 SD模式下的命令和数据流都有一个开始位和结束位. >命令: 是在CMD上传输的用于启动一个操作的比特流. 由主机发往从机, 可以是点对点也可以是广播的. >响应: 是在CMD上传输的用于之前命令回答的比特流. 由从机发往主机. >数据: 是在DAT上传输的比特流, 双向传输. 无响应模式无数据模式 多块读操作模式 多块写操作模式

命令格式 响应格式 数据格式 SD卡上电后会自动初始化,通过给卡发送CMD0也可以复位卡.

二.SD卡命令描述. 1.广播命令: 给所有卡都发送, 某些命令需要响应. 2.点对点命令 给指定地址的卡发送, 需要响应. SD卡系统有两种工作模式: 1.卡识别模式. 主机上电复位后即处于此模式,它会在总线上等待卡. 卡复位后也处于此模式, 直到SEND_RCA(CMD3)命令到来. 2.数据传输模式. 卡收到SEND_RCA(CMD3)命令后即进入此模式. 主机识别到卡后也进入此模式. 卡状态和工作模式对照表 1.卡识别模式. 此模式下主机复位总线所有的卡, 验证工作电压, 询问卡的地址. 这个模式下所有数据的传输都是只通过CMD线来完成. 1)卡的复位. 当卡上电或收到GO_IDLE_STATE (CMD0)命令后, 卡即进入Idle State状态. 此时卡将其RCA设为0, 相关寄存器设为传输稳定的最优模式. 2)工作电压验证 每个卡的最高和最低工作电压存储在OCR. 只有当电压比配时, CID和CSD的数据才能正常传输给主机. SD_SEND_OP_COND (ACMD41)命令用来判断卡的工作电压是否符合, 如果不符合的话, 卡应该放弃总线操作, 进入Inactive State状态. 在发送SD_SEND_OP_COND (ACMD41)命令前记得要首先发送APP_CMD (CMD55).

通过adb命令更改目录读写权限的方法

通过adb命令更改目录读写权限的方法 android系统目录默认是只有读权限,所以不能更改系统文件的权限和增加删除文件,必须修改成了读写权限后才可以进行以上操作。有什么方法可以修改呢?这个可以通过adb 命令更改目录读写权限的方法,比如更改system目录的权限 1. 获取system挂载点,可以通过执行mount命令,然后查找到mount的挂载点: 2. 通过mount命令来修改读写权限 mount -o rw,remount /dev/block/platform/msm_sdcc.1/by-name/system/system 注:-o接两个参数,一个是rw,一个是remount(remount 重新安装已经安装了的文件系统) 命令格式:mount [-r] [-w] [-o options] [-t type] device directory 其中: (1). -t vfstype 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat

Windows NT ntfs文件系统:ntfs Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs (2).-o options 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集 (3) . device 要挂接(mount)的设备。 (4). dir设备在系统上的挂接点(mountpoint)。 (5). -r 将文件系统安装为只读。 (6). -w 将文件系统安装为可写,为命令默认情况。

sd卡协议分析

sd Mmc 目录 第一章 SD卡系统概念 3 §1.1 SD卡概述 3 §1.2 SD卡的系统特征 3 §1.3 SD卡的系统概念 4 §1.4 SD卡的总线传输 6 §1.5 SD卡的引脚 10 §1.6 SD卡主要寄存器介绍 12 §1.7 SD卡子系统结构 14 第二章 SD卡初始化及状态转换 16 §2.1SD卡状态及初始化过程 16 §2.2SD卡数据传输过程 18 1.SD卡基础 1.SD卡概述 SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。 其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。相关的一些设备为:GPS、

相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。 1.2 SD卡的系统特征(SD物理层协议v 2.0) ?针对移动和固定应用; ?存储容量: 标准容量SD存储卡:最高2G 高容量SD存储卡:2G以上(在该规范版本中,最高32G) ?电压范围: 高电压SD存储卡—操作电压范围:2.7~3.6V 双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和 2.7~ 3.6V ?分为只读卡和读/写卡; ?默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ; ?高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ; ?支持高速,电子商务和将来功能的转换功能命令; ?存储域错误纠正; ?读操作期间移去卡,内容不损坏; ?内容保护机制—符合SDMI标准的最高安全性; ?卡的密码保护(CMD42 - LOCK_UNLOCK);

sd卡电路图学习

,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: SD卡引脚功能详述:

SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2) SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI 控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

SD卡初始化及读写流程

SD卡初始化及读写流程 默认分类2010-03-03 21:03:00 阅读264 评论0 字号:大中小 SD卡调试关键点: 1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程 序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8, 返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。 3. 理论上要求发送CMD58获得SD卡电压参数,但实际过程中 由于事先都知道了SD卡的工作电压,因此可省略这一步简化程序。协议书上也建议尽量不要用这个命令。 4. SD卡读写超时时间要按照协议说明书书上的给定值(读超时: 100ms;写超时:250ms),这个值要在程序中准确计算出来,否

则将会出现不能正常读写数据的问题。我自己定义了一个计算公 式:超时时间=(8/clk)*arg。 5. 2GB以内的SD卡(标准卡)和2GB以上的SD卡(大容量卡)在 地址访问形式上不同,这一点尤其要注意,否则将会出现无法读写数据的问题。如标准卡在读写操作时,对读或写命令令牌当中的地址域符初值0x10,表示对第16个字节以后的地址单元进行操作(前提是此SD卡支持偏移读写操作),而对大容量卡读或写命令令牌当中的地址域符初值0x10时,则表示对第16块进行读写操作,而且大容量卡只支持块读写操作,块大小固定为512字节, 对其进行字节操作将会出错。 6. 对某一块要进行写操作时最好先执行擦出命令,这样写入的速 度就能大大提高。进行擦除操作时不管是标准卡还是大容量卡都按块操作执行,也就是一次擦除至少512字节。 7. 对标准卡进行字节操作时,起始和终止必须在一个物理扇区 内,否则将不能进行读写操作。实际操作过程中建议用块操作以提高效率。不管是标准卡还是大容量卡一个读写命令只能对一个块进行操作,不允许跨物理层地址操作。

Linux chmod命令修改文件与文件夹权限的命令附实例

Linux chmod命令修改文件与文件夹权限的命令附实例 在linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做,下面我写了几个简单的实例大家可参考一下 语法:chmod [who] [+ | - | =] [mode] 文件名 命令中who的含义为 u 表示“用户(user)”,即文件或目录的所有者。 g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 o 表示“其他(others)用户”。 a 表示“所有(all)用户”。它是系统默认值。 操作符号可以是: + 添加某个权限。 - 取消某个权限。 = 赋予给定权限并取消其他所有权限(如果有的话)。 设置mode所表示的权限可用下述字母的任意组合: r 可读。 w 可写。 x 可执行。 X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

t 保存程序的文本到交换设备上。 u 与文件属主拥有一样的权限。 g 与和文件属主同组的用户拥有一样的权限。 o 与其他用户拥有一样的权限。 实例,修改文件可读写属性的方法,例如: 把index.html 文件修改为可写可读可执行: chmod 777 index.html 要修改目录下所有文件属性可写可读可执行: chmod 777 *.* 把文件夹名称与后缀名用*来代替就可以了。 比如:修改所有htm文件的属性: chmod 777 *.htm 修改文件夹属性的方法 把目录/images/xiao 修改为可写可读可执行 chmod 777 /images/xiao 修改目录下所有的文件夹属性 chmod 777 * 把文件夹名称用*来代替就可以了 要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行chmod -R 777 /upload

tf卡通信协议

竭诚为您提供优质文档/双击可除 tf卡通信协议 篇一:sd卡和tF卡简介 sd卡和tF卡简介 tF卡 全名:transFlash,原名microsdcard。 由摩托罗拉与sandisk共同研发,在20xx年推出。是一种超小型卡(11*15*1mm),约为sd卡的1/4,可以算目前最小的储存卡了。tF卡可经sd卡转换器后,当sd卡使用。利用适配器可以在使用sd作为存储介质的设备上使用。transFlash主要是为照相手机拍摄大幅图像以及能够下载 较大的视频片段而开发研制的。transFlash卡可以用来储存个人数据,例如数字照片、mp3、游戏及用于手机的应用和个人数据等,还内设置版权保护管理系统,让下载的音乐、影像及游戏受保护;未来推出的新型transFlash还备有加密功能,保护个人数据、财政纪录及健康医疗文件。体积小巧的transFlash让制造商无须顾虑电话体积即可采用此设计,而另一项弹性运用是可以让供货商在交货前随时按客户不同需求做替换,这个优点是嵌入式闪存所没有的。

tF卡引脚定义: tF卡(sd模式): 1-data2,2-data3,3-cmd,4-vdd,5-clk,6-vss,7-data0,8-d ata1tF卡(spi模式): 1-rsv,2-cs,3-di,4-vdd,5-sclk,6-vss,7-do,8-rsv sd卡(securedigitalmemorycard) 安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写pda)和多媒体播放器等。sd卡是一种基于半导体闪存工艺的存储卡,1999年由日本松下主导概念,参与者东芝和美国sandisk公司进行实质研发而完成。2000年这几家公司发起成立了sd协会(securedigitalassociation简称sda),阵容强大,吸引了大量厂商参加。其中包括ibm,microsoft,motorola,nec、samsung等。在这些领导厂商的推动下,sd卡已成为目前消费数码设备中应用最广泛的一种存储卡。sd卡具有大容量、高性能、安全等多种特点的多功能存储卡,它比mmc卡多了一个进行数据著作权保护的暗号认证功能(sdmi规格),读写速度比mmc卡要快4倍,达2m/秒。 尺寸32mmx24mmx2.1mm sd卡的技术是基于multimediacard(mmc)格式上发展而来,大小和mmc卡差不多,尺寸为32mmx24mmx2.1mm。长

SD卡读写操作 SD卡电路

SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: SD卡引脚功能详述:

SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI 方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2) SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

sd卡读写程序(SDcardreadandwriteprogram)

sd 卡读写程序( SD card read and write program ) SD card read and write program Objective: To study the SD card / / operation Design / software 1, using SPI communication / / SD card 2, go to SD / / in order to 0-255 a total of 256 data, and then read back LCD1602 display / / hardware requirements: S11 ON / / dial switch Jumper J18 / / all connected #include //dsPIC30F6014 standard header file _FOSC( CSW_FSCM_O&F FX T_PLL4); //4 doubler crystal oscillator, Failsafe clock closed _FWDT (WDT_OFF); / / close the watchdog timer _FBORPO(RP BOR_OFF& MCLR_EN);/ / reset prohibited MCLRr eset enable. _FGS (CODE_PROT_OFF); / / code protection against #define CS PORTGbits.RG9 / / SD card selection pin definition #define RSL https://www.sodocs.net/doc/ce15872307.html,TB4 / / definition LCDc ontrol bits (note here can only register with LATB, you cannot directly use the

相关主题