当前位置: 首页 > news >正文

无网站无产品链接如何做SOHO专业做二手健身器材的是什么网站

无网站无产品链接如何做SOHO,专业做二手健身器材的是什么网站,做饮食找工作哪个网站好,网站在百度突然搜不到了NAND Flash 在嵌入式系统中的地位与PC机上的硬盘是类似的。用于保存系统运行所必需的操作系统#xff0c;应用程序#xff0c;用户数据#xff0c;运行过程中产生的各类数据#xff0c;系统掉电后数据不会护丢失。现在的Flash主要有两咱#xff0c;一种是NAND Flash 一种是… NAND Flash 在嵌入式系统中的地位与PC机上的硬盘是类似的。用于保存系统运行所必需的操作系统应用程序用户数据运行过程中产生的各类数据系统掉电后数据不会护丢失。现在的Flash主要有两咱一种是NAND Flash 一种是Nor Flash。NOR Flash是由Intel公司于1988年发明的用以代替EERPOMNAND Flash由Toshiba 公司在1989年发明的。     网上有很多介绍两者区别的文章在此就不做介绍了主要介绍关于NAND Flash的组织结构和编写程序的方法。        在三星的NAND Flash中当CPU从NAND Flash开始启动时CPU会通过内部的硬件将NAND Flash开始的4KB数据复制到称为“Steppingstone”的4KB的内部RAM中起始地址为0然后跳到地址0处开始执行。这也就是我们为什么可以把小于4KB的程序烧到NAND Flash中可以运行而当大于4KB时却没有办法运行必须借助于NAND Flash的读操作读取4KB以后的程序到内存中。         NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在 memory cell存储单元。一般情况下一个cell中只能存储一个bit。这些cell以8个或者16个为单位连成 bit line ,形成所谓的byte(x8)/word(x16),这就是NAND Flash的位宽。          这些Line会再组成Pape页。然后是每32个page形成一个Block所以一个Block块大小是16k.Block是NAND Flash中最大的操作单元其中的擦除操作是以Block为单位进行擦除的而读写和编程是以page为单位进行操作的并且读写之前必须进行flash的擦写。我们这里以三星K9F1208U0M的NAND Flash 为例它的大小是64MB的。 1block 32page 1page 512bytes(datafield) 16bytes(oob)       K9F1208U0B总共有4096个Blocks故我们可以知道这块flash的容量为4096 *(32 *528) 69206016 Bytes 66 MB    但事实上每个Page上的最后16Bytes是用于存贮检验码用的并不能存放实际的数据所以实际上我们可以操作的芯片容量为 4096 *(32 *512) 67108864 Bytes 64 MB                          Nand Flash 物理结构图       在NAND Flash中有8个I/O引脚IO0—IO7、5个全能信号nWE ALE CLE nCE nRE、一个引脚1个写保护引脚。操作NAND Flash时先传输命令然后传输地址最后读写数据。对于64MB的NAND Flash需要一个26位的地址。只能8个I/O引脚充当地址、数据、命令的复用端口所以每次传地址只能传8位。这样就需要4个地址序列。因此读写一次nand flash需要传送4次A[7:0] A[16:9] A[24:17] A[25]。64M的NAND Flash的地址范围为0x00000000—0x03FFFFFF。     一页有528个字节而在前512B中存放着用户的数据。在后面的16字节中OOB中存放着执行命令后的状态信息。主要是ECC校验的标识。列地址A0-A7可以寻址的范围是256个字节要寻址528字节的话将一页分为了A.1half arrayB(2 half array) C(spare array)。A区0—255字节B区 256-511 字节C区512—527字节。访问某页时必须选定特定的区。这可以使地址指针指向特定的区实现。        在NAND Flash中存在三类地址分别为Block Address 、Column Address Page Address.。        Column Address用来选择是在上半页寻址还是在下半页寻址A[0]—A[7].也就相当于页内的偏移地址。在进行擦除时不需要列地址因为擦除是以块为单位擦除。32个Page需要5bit来表示。也就是A[13:9];也就是页在块内的相对地址。A8这一位用来设置512字节的上半页还是下半页1表示是在上半页而2表示是在下半页。Block的地址有A[25:14]组成。   存储操作特点 1.擦除操作的最小单位是块 2.Nand Flash芯片每一位只能从1变为0而不能从0变为1所以在对其进行写入操作之前一定要将相应块擦除擦除就是将相应块的位全部变为1 3 OOB部分的第六字节即517字节标志是否坏块如果不是坏块该值为FF否则为坏块 4 除OOB第六字节外通常至少把OOB前3字节存放Nand Flash硬件ECC码          一个容量为64M(512Mbit)的NAND Flash,分为131072页528列。实际中由于存在spare area,故都大于这个值有4096块需要12bit来表示即A[25:14].如果是128M1Gbit的话blodk Address为A[26:14].由于地址只能在IO0—IO7上传送。编程时通常通过移位来实现地址的传送。传送过程如下 第1个地址序列传递column address也就是NAND Flash[7:0],这一周期不需要移位即可传递到I/O[7:0]上而half page pointer 即A8是由操作指令决定00h在A区01h在B区指令决定在哪个half page上进行读写而真正A8的值是不需要程序员关心的 第2个地址序列就是将NAND_ADDR右移9位而不是8位将NAND_ADDR[16:9]传递到I/O[7:0]上 第3个地址序列将NAND_ADDR[24:17]传递到I/O[7:0]上 第4个地址序列将NAND_ADDR[25]传送到I/O上。     整个地址的传送过程需要4步才能完成。如果NAND Flash的大小是32MB的以下的话那么block address最高位只到bit24,因此寻址只需要3步就可以完成。        在进行擦除操作时由于是以块进行擦除所以只需要3个地址序列也就是只传递块的地址即A[14:25]。   NAND Flash地址的计算         Column Address翻译过来是列地址也就是在一页里的偏移地址。其实是指定Page上的某个Byte指定这个Byte其实也就是指定此页的读写起始地址。         Page Address:页地址。页的地址总是以512Bytes对齐的所以它的低9位问题0确定读写操作在NAND Flash中的哪个页进行。     当我们得到一个Nand Flash地址addr时我们可以这样分解出Column Address和Page Address。 Columnaddr addr % 512   // column address Pageaddr addr9            // page address         也就是一个Nand Flash地址的A0-A7是它的column address ,A9—A25是它的Page Address地址A8被忽略。 现在假设我要从Nand Flash中的第5000字节处开始读取1024个字节到内存的0x30000000处我们这样调用read函数   NF_Read(5000, 0x30000000,1024); 我们来分析5000这个src_addr. 根据    column_addrsrc_addr%512;        page_address(src_addr9);      我们可得出column_addr5000%512392 page_address(50009)9 于是我们可以知道5000这个地址是在第9页的第392个字节处于是我们的NF_read函数将这样发送命令和参数 column_addr5000%512; page_address(50009); NF_CMD0x01;                                          //要从2nd half开始读取 所以要发送命令0x01 NF_ADDR column_addr 0xff;                     //1st Cycle A[7:0] NF_ADDRpage_address 0xff NF_ADDR(page_address8)0xff;                 //3rd.Cycle   A[24:17] NF_ADDR(page_address16)0xff;              //4th.Cycle   A[25]     向NandFlash的命令寄存器和地址寄存器发送完以上命令和参数之后,我们就可以从rNFDATA寄存器(NandFlash数据寄存器)读取数据了. 我用下面的代码进行数据的读取. for(icolumn_addr;i512;i) {           *bufNF_RDDATA(); } 每当读取完一个Page之后,数据指针会落在下一个Page的0号Column(0号Byte).
http://www.pierceye.com/news/812801/

相关文章:

  • wordpress 用js网站备案 seo
  • 网站一级域名和二级域名区别自己怎么做外贸英文网站
  • 南京网站定制南京wordpress安装提示500错误
  • 网站图片优化免费网站建设凡科
  • 网站开发项目团队网页设计图片与文字的研究
  • 百度网站建设策划书范文做暧在线网站
  • 松江新城做网站公司国产成年做视频网站
  • 杭州网站推广服务网站单页面怎么做
  • 房地产网站建设案例wordpress 判断移动端
  • 网站开发过程文档网站代码需要注意什么问题
  • 怎么选一个适合自己的网站wordpress怎么修改后台登录地址
  • 网页制作与网站建设自考西安千秋网络科技有限公司
  • 建设网站的费用入什么科目永久免费google搜索引擎
  • 拍卖网站怎么做梧州网页设计师招聘
  • 炫酷网站源码下载网站建设副业
  • 做dw和ps的网站教学做网站属于什么费用
  • 秦皇岛网站制作小程序开发wordpress调用分类标签
  • 网站绑定别名好吗台州品牌网站设计
  • 安徽省住房和城乡建设厅网站域名东莞松山湖华为小镇
  • 购物网站开发教程中文版做一个自己的免费网站吗
  • 网站建设网络推广平台湖北省级建设主管部门网站
  • 手机网站建设口碑好google海外版
  • 网站加视频播放设计怎么做的oa系统管理平台
  • 湛江有网站的公司名称秘密入口3秒自动进入
  • 网站建设需要租用什么北京网站设计制作过程
  • 设计高端网站建设电子商务平台的建设步骤
  • 对外网站ipv6建设方案模板网站提交地址
  • 网站优化包括哪些内容哪一个网站做专栏作家好点
  • 网站外包 博客网络广告的优势有哪些
  • 福建网站建设网wordpress批量替换标签