请务必保留此出处,字节的扇区

2019-11-14 作者:首页   |   浏览(84)

凭仗地点的介绍,定义相应命令的数据结构如下: 查询Inquiry)

    笔者的《基于OHCI的USB主机》连串文章已经终结了,笔者认为供给树立一个索引,以便须求的人得以火速找到所急需的稿子。本文书档案的靶子正是孜孜无怠二个该体系小说的目录,大概还有恐怕会对每一种部分开展简短介绍。 第生机勃勃部分 概述 基于OHCI的USB主机的背景介绍与欧洲经济共同体构架,使读者明白相应的知识背景。 1、基于OHCI的USB主机 —— 前言 2、基于OHCI的USB主机 —— 背景介绍 3、基于OHCI的USB主机 —— 总体构架   第二部分 贮存器读写接口 对OHCI标准所须求的贮存器操作接口。纯贮存器操作,与规范和业务非亲非故。 1、基于OHCI的USB主机 —— 存放器层表明卡塔尔 2、基于OHCI的USB主机 —— 贮存器伊始化卡塔 尔(英语:State of Qatar) 3、基于OHCI的USB主机 —— 贮存器传输卡塔尔国 4、基于OHCI的USB主机 —— 存放重视新设置卡塔 尔(阿拉伯语:قطر‎ 5、基于OHCI的USB主机 —— 寄放器设备连接卡塔 尔(阿拉伯语:قطر‎6、基于OHCI的USB主机 —— 贮存器此外卡塔尔   第三有的 OHCI软件接口 基于OHCI标准的平底调节端口和批量端口读写接口。 1、基于OHCI的USB主机 —— OHCI端点卡塔尔 2、基于OHCI的USB主机 —— OHCI传输描述符卡塔 尔(阿拉伯语:قطر‎ 3、基于OHCI的USB主机 —— OHCIHCCA卡塔尔国 4、基于OHCI的USB主机 —— OHCI基本流程卡塔 尔(阿拉伯语:قطر‎5、基于OHCI的USB主机 —— OHCIED结构卡塔 尔(阿拉伯语:قطر‎ 6、基于OHCI的 USB主机 —— OHCIED结构表明卡塔 尔(英语:State of Qatar) 7、基于OHCI的USB主机 —— OHCITD结构卡塔 尔(英语:State of Qatar)8、基于OHCI的USB主机 —— OHCITD结构表明卡塔尔国 9、基于OHCI的USB主机 —— OHCI设计思路卡塔 尔(阿拉伯语:قطر‎ 10、基于OHCI的USB主机 —— OHCI自定义数据结构卡塔尔11、基于OHCI的USB主机 —— OHCI调节端口读数据卡塔尔国 12、基于OHCI的USB主机 —— OHCI调节端口写多少卡塔 尔(阿拉伯语:قطر‎ 13、基于OHCI的USB主机 —— OHCI批量端口读数据)14、基于OHCI的USB主机 —— OHCI批量端口写多少卡塔尔 15、基于OHCI的USB主机 —— 中断贮存器起先化 16、基于OHCI的USB主机 —— 中断向量管理17、基于OHCI的USB主机 —— 中断处理程序   第四片段 USB设备管理当USB设备连接到主机上之后,USB主机对其进行的枚举进程。 1、基于OHCI的USB主机 —— USB设备命令介绍 2、基于OHCI的USB主机 —— USB标准央求 3、基于OHCI的USB主机 —— 描述符表明 4、基于OHCI的USB主机 —— USB设备枚举进程 5、基于OHCI的USB主机 —— USB设备描述符数据协会6、基于OHCI的USB主机 —— USB设备此外数据结构 7、基于OHCI的USB主机 —— USB设备常量定义 8、基于OHCI的USB主机 —— USB设备获取描述符通用函数 9、基于OHCI的USB主机 —— USB设备获得设备描述符 10、基于OHCI的USB主机 —— USB设备获得配置描述符 11、基于OHCI的USB主机 —— USB设备设置地方12、基于OHCI的USB主机 —— USB设备设置配置值 13、基于OHCI的USB主机 —— USB设备设置接口值 14、基于OHCI的USB主机 —— USB设备枚举 15、基于OHCI的USB主机 —— USB设备端口本性消除   第五局部 UFI命令 那是U盘读写操作的最底层公约接口。 1、基于OHCI的USB主机 —— UFI命令概述 2、基于OHCI的 USB主机 —— UFI命令 USB Mass Storage Class Bulk-Only Transport切磋介绍 3、基于OHCI的USB主机 —— UFI查询命令Inquiry卡塔尔国4、基于OHCI的USB主机 —— UFI读体量命令ReadCapacity卡塔 尔(阿拉伯语:قطر‎ 5、基于OHCI的USB主机 —— UFI读扇区命令Read10卡塔 尔(阿拉伯语:قطر‎ 6、基于OHCI的USB主机 —— UFI写扇区命令Write10卡塔尔7、基于OHCI的USB主机 —— UFI数据结构1 8、基于OHCI的USB主机 —— UFI数据结构2 9、基于OHCI的USB主机 —— UFI数据结构3 10、基于OHCI的USB主机 —— UFI查询代码 11、基于OHCI的USB主机 —— UFI读容积代码 12、基于OHCI的USB主机 —— UFI读扇区代码 13、基于OHCI的USB主机 —— UFI写扇区代码 14、基于OHCI的USB主机 —— UFI读状态代码 15、基于OHCI的USB主机 —— 批量端口重新设置代码 16、基于OHCI的USB主机 —— UFI命令监视代码   第六局地 附录 1、随意说几句 —— 关于USB主机种类2、基于OHCI的USB主机 —— 停止语 3、AT91RM9200的USB主机官方例程

确认保证 Linux 在享有柱面上都处在运转状态

Nor Flash上电后高居数据读取状态(Reading Array Data卡塔 尔(阿拉伯语:قطر‎。此境况能够张开平常的读。那和读取SDRAM/SRAM/ROM同样。(假诺不肖似的话,集成电路上电后怎么从NorFlash中读取运行代码。~)

/**

 * Inquiry命令数据结构

 */

typedefstruct _INQUIRY_SPC

{

    UINT8OperationCode; //!< 操作码,应为0x12

    UINT8Lun;           //!< 逻辑单元号,应为0

    UINT8PageCode;      //!< 页代码,应为0

    UINT8Reserved1;     //!< 保留,应为0

    UINT8AllocationLen; //!< 存储空间长度,常为0x24

    UINT8Reserved[7];       //!< 保留,应为0

} INQUIRY_SPC, *PINQUIRY_SPC;

本文出自 “rainman” 博客,请必需保留此出处

高档的格式化磁盘使用的是 4,096 字节的扇区,并不是更千千万万的 512 字节的扇区。为了让操作系统寻常运营,大家使用固件将 4,096 字节的轮廓扇区分成 512 字节的逻辑分区,以此隐蔽了这生平成,然则一点都不小物理扇区的选择给磁盘布局和种类质量带来了某些隐患。本文将翻开那么些祸患,满含条件测量试验,它们描述了对意气风发部分习以为常Linux 文件系统的恐怕的实际影响。随着高端的格式化磁盘变得尤为分布,对于那几个想要幸免与次优配置相关的要紧质量损失的人来讲,理解如哪管理这几个磁盘也成为了后生可畏项重要的技能。

 

  读容量ReadCapacity)

...

假定您熟稔磁盘结构,就能够通晓磁盘被降解成了五个扇区,这么些扇区的抑扬顿挫常常为 512 字节;全部读写操作均在成倍扇区大小的空中内张开。要是细心考查你就能够发觉,硬盘的次第扇区之间还富含额外的数据。磁盘使用那些额外字节的数量来检查实验和改革种种扇区内的失实。

诚如再对Flash实行操作前都要读取微芯片信息比方设备ID号。那样做的关键指标是为了认清自身写的前后相继是不是帮衬该设施。 Nor Flash辅助2种格局得到ID号。大器晚成种是编制程序器所用的点子必要高电压(11.5V-12.5V卡塔 尔(阿拉伯语:قطر‎。另风姿洒脱种办法正是所谓的in-system方法,正是在系统中通过NorFlash的指令存放器来完结。本文中只对in-system方法进行验证。那时候亟需切换来活动选拔(Autoselect Command),这要透过发送命令来实现。命令类型见下图。注意:

/**

 * 读容量命令

 */

typedefstruct _READ_CAPACITY

{

    UINT8OperationCode; //!< 操作码,应为0x25

    UINT8Reserved[15];   //!< 保留,应为0

}READ_CAPACITY;

当扇区大小从 512 字节扩展为更加大的值时,就能够选拔更实用的、作用更有力的纠错算法。由此,改正为一点都不小尺寸的扇区可收获多少个实际的裨益:扩充可信性和扩展磁盘体量,起码从理论中校是那般的。

 

读扇区Read10)

尖端格式化磁盘将每个 4,096 字节的物理扇区转换成 8 个 512 字节的逻辑扇区。对于固件、操作系统和全部磁盘实用程序,磁盘看起疑似512 字节的扇区,但实则,基本功的情理扇区大小是 4,096 字节。不过,改造固件中表面包车型地铁扇区大小会形成品质缩短。要想精通个中的因由,则须要理解文件系统数据结构方面包车型客车学问,以致怎样将分区放置在硬盘上。

跻身机关接收(Autoselect Command卡塔 尔(英语:State of Qatar)格局后须求发送重新载入参数命令才干回去数据读取状态(Reading Array Data卡塔尔国。

/**

 * 读命令

 */

typedefstruct _READ_10

{

    UINT8OperationCode; //!< 操作码,应为0x28

    UINT8Reserved1;     //!< 保留,应为0

    UINT8LBA_3;         //!< 逻辑块地址3

    UINT8LBA_2;         //!< 逻辑块地址2

    UINT8LBA_1;          //!< 逻辑块地址1

    UINT8LBA_0;         //!< 逻辑块地址0

    UINT8Reserved2;     //!< 保留,应为0

    UINT8XferLen_1;     //!< 传输扇区数,高字节

    UINT8XferLen_0;     //!< 传输扇区数,低字节

    UINT8Reserved3[4]; //!< 保留,应为0

}READ_10;

4KB 扇区磁盘上的 Linux:实际建议  http://www.linuxidc.com/Linux/2010-05/26401.htm

 

写扇区Write10)

文件系统数据结构为什么会影响属性

今昔的文件系统使用的是 4,096 字节或更加大的数据结构。因而,抢先52%磁盘 I/O 操作使用了此数额的倍增大小的扇区。试想一下,假设 Linux 想在一个具有4,096 字节扇区的新磁盘上读写那一个数据结构中的某二个,将会现身哪些情况。假设文件系统数据结构恰恰与功底物理扇区大小完全一致,那么读写 4,096 字节的数据结构就能够时有发生单大器晚成扇区的读写。硬盘的固件无需选拔任何极度方式,可是,假若文件系统数据结构与底蕴物理扇区不完全后生可畏致,那么读写操作必需访谈多个大意扇区。图 1 体现了这种差别:

在成功信息获得后平时将在擦除数据。 NorFlash帮助扇区擦(Sector 伊Russe)除和整片擦除(Chip 伊Russe)。那2种情势都有照拂的授命连串。在做到擦除命令后会自动回到到多少读取(Reading Array Data卡塔尔国状态。在再次回到前可查询编制程序的情况。

/**

 * 写命令

 */

typedefstruct _WRITE_10

{

    UINT8OperationCode; //!< 操作码,应为0x2A

    UINT8Reserved1;     //!< 保留,应为0

    UINT8LBA_3;         //!< 逻辑块地址3

    UINT8LBA_2;         //!< 逻辑块地址2

    UINT8LBA_1;          //!< 逻辑块地址1

    UINT8LBA_0;         //!< 逻辑块地址0

    UINT8Reserved2;     //!< 保留,应为0

    UINT8XferLen_1;     //!< 传输扇区数,高字节

    UINT8XferLen_0;     //!< 传输扇区数,低字节

    UINT8Reserved3[4]; //!< 保留,应为0

}WRITE_10;

图 1. 磁盘数据结构能够超过高档格式化磁盘上的大体扇区

图片 1

从理论上讲,读操作受到未对齐的熏陶小于写操作受到的震慑。在推行磁盘读取操作时,磁盘的读/写磁头很也许忽视叁个随着一个的扇区,因而固件重回4 KiB 数据结构的任务就比较容易。相比之下,未对齐的数据结构的写操作要求磁盘的固件读取八个扇区,改革多少个扇区的部分,然后写入八个扇区。那项操作开销的岁月多于 4,096 字节数据占用单个扇区的小时。由此,会产生质量减少。实际上,读操作受到的影响有的时候与写操作受到的熏陶平等严重。

何以技术分晓数据结构是或不是正巧对齐?大比超多文件系统将其数据结构与包括数据结构的分区的开始有的对齐。由此,假如分区开首时是 4,096 字节(8 个扇区卡塔 尔(英语:State of Qatar)的分界,则能恰巧对齐。可是,在差不离 2010年早先,Linux 分区工具并非接纳这种方法来创立对齐的分区。纵然在后天,这种措施照旧存在一些恶疾,由此成立分区时断定要三思而行。(要想询问哪些采用大范围的 Linux 分区软件完结那项职业,请转到下一小节,对齐分区。卡塔 尔(英语:State of Qatar)

 

本文出自 “rainman” 博客,请必须保留此出处

测量检验参数

为了掌握科学对齐毕竟有多种要,笔者在三台电脑上使用了多个高端格式化磁盘来实践测验:

  • 多少个 1TB 的西部数据 WD-10EAKugaS 高等格式化驱动器 — 在运用了叁个 NVIDIA MCP61P 晶片组和二个 64 位 2.6.32.3 内核的计算机上首批引进(2009年末卡塔 尔(英语:State of Qatar)的高端格式化磁盘之意气风发。测验结果公布在本文的率先版中(2010年问世卡塔 尔(英语:State of Qatar)。
  • 四个 2TB 的HGST ST二〇〇二L003 驱动器,于 2011年购买,该驱动器位于具备较新的 英特尔 760G/SB710 微芯片组和一个 64 位 3.4.1 内核的计算机上。
  • 四个 3TB 的东芝(东芝卡塔 尔(阿拉伯语:قطر‎ DT01ACA300 驱动器,于 2012年末购置,该驱动器位于拥有一个 AMD® H77 微电路组和三个 64 位 3.11.7 内核的微机上。

在多个测量检验中,作者都施用了大局惟意气风发标记符 (GUID) 分区表 (GPT) 系统对磁盘进行分区,对齐的分区从逻辑扇区 40 开头,未对齐的分区从逻辑扇区 34(在使用具备暗许分区表大小的 GPT 磁盘时,该扇区是率先个可用的扇区卡塔 尔(英语:State of Qatar)发轫。被测量检验的文件系统是第三扩大文件系统 (ext3)、第四扩充文件系统 (ext4)、雷斯erFS (V3)、日志文件系统 (JFS)、扩充文件系统 (XFS) 和 B-tree 文件系统 (Btrfs)。

在富有测量试验中,三个本子实践了风姿洒脱连串的磁盘 I/O 操作,包含创立新的文件系统,将未压缩的 Linux 内核原始码 (tarball) 提取到测量试验驱动器中,将原始码复制到驱动器,读取测验驱动器上未压缩的原始码,从驱动器中读取原始码,以致去除 Linux 内核目录。源 Linux 内核原始码存款和储蓄在另二个磁盘中,用于读取测量检验,输出被定向到 /dev/null。在举办种种写入测量试验后,都会立马卸载测量检验驱动器,以此作为承保Linux 磁盘缓存中并未有保留任何操作的大器晚成种手腕。报告的数字富含试行卸载操作所需的年月。

用以第三次测验的基石原始码的大小为 365MiB,用于第三回和第三次测量试验的水源原始码的轻重缓急为 451MiB。全部磁盘都有64MiB 的缓存,由此八个测量检验中的原始码的分寸都大大超越了磁盘的缓存大小。小编在各样文件系统上运转每一个测量试验种类各 6 次,3 次是在刚刚对齐的分区中,3 次是在未对齐的分区中。那么些运转时期的变化不大。通过将平均对齐时间除以平均未对齐时间,就可以明确品质对未对齐的熏陶程度。值大于 1.00 表示未对齐存在一些特性损失。

更加多详细情况见请继续读书下黄金年代页的精彩内容: http://www.linuxidc.com/Linux/2014-08/105598p2.htm

图片 2

形成擦除后就要求对微电路实行写入操作也便是编程。这就需求步向编制程序(Program)状态。在成功编制程序命令后会自动重回到数量读取(Reading Array Data卡塔尔国状态。在回来前可查询编制程序的场所。注意:编制程序前必定要先擦除。因为编制程序只好将’1’改写为’0’,通过擦写能够将数据总体擦写为‘1’。

查询 Inquiry ) /** * Inquiry 命令数据结构 */ typedef struct _INQUIRY_SPC { UINT8 OperationCode ; //! 操作...

 

如上是主要的操作其余操作还会有写爱惜等,请参考微芯片数据手册。

 

 

图片 3

图1-1 命令与方式

 

(2) Nor Flash 硬件连接

 

图片 4
图2-1 Nor Flash 引脚

 

图片 5

 

 

 

图2-2 TQ2440中实际连接

 

上海教室中要留心的多少个地点:

 

1. 引脚47 为BYTE# :当其为高电平常多少输出为16bit情势(当时地址线为A19:A0).低电平为8bit方式. (那时地址线为A19:A1)上海教室中Pin47加VCC选取的是16bit形式有效地址线为A19:A0.

 

2. 对于16bit形式要16bit对齐因而S3C2440A的LADDLacrosse1要与A0连接.那个时候要留神的是NorFlash片外省址0x555对应S3C2440A的地址为baseaddr+0x555*2;此中baseaddr与NorFlash映射的地点有关。平常NorFlash放在Bank0.所以baseaddr=0,可是展开mmu后baseaddr=地址0映射到的新鸿基土地资产方。0x555*2的自始自终的经过是LADD路虎极光1与A0连接。也正是0x555意味着片内第0x553个word(16bit).

 

3. 引脚15为RYBY#出口引脚。用于输出Ready与Busy时限信号。实际用时能够不接。可用命令查询NorFlash状态代替.

 

 

 

(3) Nor Flash 方式编制程序

 

 

 

1. 读ID

 

图片 6

 

上海图书馆中证明 读id共有4个指令周期,钱3个为写周期,最后壹个为读周期;

 

#define flash_base 0x00000000 //flash接到bank0上

 

#define CMD_ADDR0 *((volatile U16 *)(0x555*2+flash_base))

 

#define CMD_ADDR1 *((volatile U16 *)(0x2aa*2+flash_base))

 

#define CMD_ADDR2 *((volatile U16 *)(0xaaa*2+flash_base))

 

 

 

本文由美高梅赌堵59599发布于首页,转载请注明出处:请务必保留此出处,字节的扇区

关键词: