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. settimeout、setinterval区别和相互模拟

    前几天翻书,看到“避免双重求值”一节时有提到settimeout().setinterval() 建议传入函数而不是字符串以作为第一个参数,所以这里总结一下settimeout()和setinterv ...

  2. window 命令行

    清屏 cls 启动服务 net start 服务名(nexus.mysql) 关闭服务 net stop 服务名(nexus.mysql) 删除服务 sc delete 服务名 如果服务名有空格,加引 ...

  3. 深入浅出React的一些细节——State

    (来源于: https://facebook.github.io/react/docs/state-and-lifecycle.html 翻译by:@TimRChen) Using State Cor ...

  4. leveldb源码分析--WriteBatch

    从[leveldb源码分析--插入删除流程]和WriteBatch其名我们就很轻易的知道,这个是leveldb内部的一个批量写的结构,在leveldb为了提高插入和删除的效率,在其插入过程中都采用了批 ...

  5. [翻译] OCMaskedTextField

    OCMaskedTextField https://github.com/OmerCora/OCMaskedTextField Simple class to display dynamically ...

  6. [翻译] USING GIT IN XCODE [5] 在XCODE中使用GIT[5]

    USING GIT IN XCODE USING BRANCHES Branches can be a very effective tool to isolate new features or e ...

  7. 关于WSL(Windows上的Linux子系统)的简单介绍及安装

    WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程 ...

  8. 魅力python------if - else 语句

    引入:if-else的作用,满足一个条件做什么,否则做什么. if-else语句语法结构 if 判断条件: 要执行的代码 else: 要执行的代码 判断条件:一般为关系表达式或bool类型的值 执行过 ...

  9. Shell中, 退出整个脚本

    常规做法 cat >test.sh<<EOF'' #!/bin/bash exit_script(){ exit 1 } echo "before exit" e ...

  10. 面向对象课程 - 寒假第三次作业 - C++计算器项目初始部分

    C++计算器项目初始部分 零.项目源文件地址 传送门:calculator 一.项目信息相关: 项目:Calculator 版本:1.0 日期:2016.2.16 实现: 基本的操作界面 对四则运算表 ...