1. 计算物理地址

    K9F2G08U0C是samsun出产的FLASH,容量为256MB

    页--Page: (2K + 64)Byte
    块--Block: (128K +
4K)Byte

    128 / 2 = 64 Page

    256M / 128 K  = 2048 Block

    现在以第25块的30页中的24byte为例

    物理地址 = 块大小×块号 + 页大小×页号 + 页内地址

   
= 128K x 25 + 2K x 30 + 24B

  
= 3338264(10)

  = 32F018 (16)

    1. 如图
    2. 计算我们需要发出的地址
    3. 每页有2048字节,需要2^11 = 2048,既需要11位地址

      每块有64页,需要2^6 = 64,既需要6位地址

      芯片一共有2048块,需要需要2^11 = 2048,既需要11位地址

      0x32F018 = 0011 0010 1111 0000 0001 1000

      由上图可得到实际发送的数据

      1st: A7  - A0  =  0001 1000

      2nd:A10  - A8  =  0000 0000  (A11没用到)

      3rd:A19  - A12 =  0010 1111

      4th:A27  - A20 =  0000 0011

      5th:A28 = 0000 0000

      注:*L 需要写入0

      Code:

      int i;

      volatile unsigned char *p = (volatile unsigned char *)&s3c2440_nand->NFADDR;

      *p = addr & 0xFF;        // 1

      for(i=0; i<10; i++);

      *p = (addr>>12) & 0xFF;  // 2

      for(i=0; i<10; i++);

      *p = (addr>>12) & 0xFF;  // 3

      for(i=0; i<10; i++);

      *p = (addr>>20) & 0xFF;  // 4

      for(i=0; i<10; i++);

      *p = (addr>>28) & 0xFF;  // 5

      for(i=0; i<10; i++);

K9F2G08U0C NAND FLASH 的地址分析的更多相关文章

  1. u-boot分析(九)----nand flash初始化|nand flash读写分析

    u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们 ...

  2. Samsung K9F1G08U0D SLC NAND FLASH简介(待整理)

    Samsung  K9F1G08U0D,数据存储容量为128M,采用块页式存储管理.8个I/O引脚充当数据.地址.命令的复用端口.详细:http://www.linux-mtd.infradead.o ...

  3. 嵌入式nand flash详解

    一.s3c2440启动后会将nand flash的前4K程序复制到内部的sram中,这个过程是硬件自动完成的,但是如果我们的程序远远大于4K,这个时候就需要将程序从flash拷贝到内存中来运行了. 二 ...

  4. Uboot mmc命令解析&NAND flash uboot命令详解

    转载:http://blog.csdn.net/simonjay2007/article/details/43198353 一:mmc的命令如下: 1:对mmc读操作 mmc read addr bl ...

  5. nand flash详解及驱动编写

    https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...

  6. 如何编写linux下nand flash驱动-3

    [读(read)操作过程详解] 以最简单的read操作为例,解释如何理解时序图,以及将时序图 中的要求,转化为代码. 解释时序图之前,让我们先要搞清楚,我们要做的事情:那就是,要从nand flash ...

  7. 硬件初始化,nand flash固化操作,系统启动简单流程

    2015.3.27星期五 晴 链接脚本定义代码的排放顺序 硬件系统初始化:一:arm核初始化:(里面有指令)初始化ARM核的时候需要看arm核的手册指令:1.异常向量(最起码有个复位异常,初始化模式- ...

  8. Linux学习 : 裸板调试 之 配置使用NAND FLASH

    关于NAND FLASH的结构是以页为单位写,以块为单位来擦除: 1Gb     为大页   page=2048Kb    BLOCK=128K 512Mb 为小页   page=512byte   ...

  9. Nand flash uboot 命令详解【转】

    转自:http://blog.chinaunix.net/uid-14833587-id-76513.html nand info & nand device 显示flash的信息: DM36 ...

随机推荐

  1. 2018-10-15 00:41:45 c language

    2018-10-15 00:41:45  c language C语言输入法的选择 全角和半角的区别主要在于除汉字以外的其它字符,比如标点符号.英文字母.阿拉伯数字等,全角字符和半角字符所占用的位置的 ...

  2. oracle 和 mysql 和区别

    1.mysql 有枚举类型,oracle 没有; mysql不支持number.varchar2类型,报错.2.oracle 支持全外连接,mysql 不支持 select e.ename, e.sa ...

  3. 9 tensorflow提示in different while loops的错误该如何解决

    示例代码 ii=tf.constant(0,dtype=tf.int32) loop__cond=lambda a: tf.less(a,sentence_length) loop__vars=[ii ...

  4. 2.MyBatis 动态SQL

    动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格 ...

  5. Man's Best Friend: The Science Behind the Dog and Human Relationship

    http://info.thinkfun.com/stem-education/mans-best-friend-the-science-behind-the-dog-and-human-relati ...

  6. September 18th 2017 Week 38th Monday

    The only person you should try to be better than is the person you were yesterday. 你唯一应该试着去超越的人,是昨天的 ...

  7. MongoDB 多实例安装成服务

    转发自:https://www.cnblogs.com/GainLoss/p/6906937.html 1.在mongodb的官网上下载安装包 https://www.mongodb.com/down ...

  8. Python3中内置类型bytes和str用法及byte和string之间各种编码转换

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str ...

  9. Java进阶 -- 文章汇总

    文章汇总 Java集合源码 -- Collection框架概述 Java集合源码 -- Map映射和Set集合 Java集合源码 -- List列表 String和StringBuffer 内部类 j ...

  10. mysql报错:/usr/sbin/mysqld:unknown variable 'default-character-set=utf8'

    修改mysql的字符集时,为了将默认字符集设置为utf-8,便将/etc/my.cnf下[mysqld]加了一行 default-character-set=utf8, 但是在下次启动系统的时候,my ...