1.nandflash就是嵌入式系统的硬盘

2.分类
(1)MLC:存储单元格存储两位,慢,偏移,寿命短,容量大
(2)SLC:存储一位。快,寿命长,容量小,昂贵

3访问;
(1)独立编址,有专用的控制器,控制器里有相应的寄存器,先送地址,然后命令,最后数据
(2)地址组成:行地址(页编号),列地址(在页中的偏移),一个nand可以有很多块,每一块可以很多页,每一页的两个部分可以不同规格
(3)信号引脚:

4.初始化nand控制器,(搜索关键字operation)
(1)初始化NFCONF,配置三个重要的与HCLK有关的时间参数
(2)初始化NGCONT,一开始要disable chip select 以及使能控制器
(3)复位:选中nandflash,清除RB标志,发送0xff命令,等待RB信号,取消选中RB信号

5.按页读
(1)选中nandflash
(2)清除RB标志
(3)写入0x00命令
(4)发送列地址,两次(但是由于是页读的方式,所以列地址,即页中的偏移量就是0)
(5)发送页编号,即行地址,分三次完成
(6)发送0x30命令
(7)等待RB信号变为ready
(8)读出数据,每次都取出数据寄存器的值,他会自动更新自己的值
(9)取消选中nandflash

6.修改之前的代码拷贝启动代码(之前只从iram复制到内存)
(1)时钟初始化有问题,错把UPLL当MPLL
(2)汇编和C语言的参数传递,不超过4个的时候,直接用r0--r3传递,且顺序和从函数的形参一致
(3)注意保存lr,否则连续两次跳转,会破坏lr,导致在执行完复制函数以后,不能返回到应执行的初始化后续代码部分
(4)注意在调用c函数之前进行栈的初始化

7.拷贝函数的三个参数,页的起始地址r0,(ulong,但是由于是页读方式,所以要去掉低11位,低11位是列地址,这里我们要去页编号,即行地址),内存起始地址r1(目标起始地址,uchar*),数据大小r3,每一页对应2048个字节(2K,视具体nandflash而言,每一个循环,大小减小2048)

8.一旦要去读取(等待)RB信号,之前就要对其进行清除;
一旦有选中操作,在结束之后要取消选中。

9.写入之前要擦除,参数是要擦除的页地址,擦除的是指定的页所在的块:
(1)选中nandflash
(2)清除RB标志
(3)写入0x60命令
(4)发送页编号,即行地址,分三次完成
(5)发送0xD0命令
(6)等待RB信号变为ready
(7)发送命令0x70
(8)读取擦出结果
(9)取消选中nandflash
(10)返回擦除结果

10.按页写
(1)选中nandflash
(2)清除RB标志
(3)写入0x80命令
(4)发送列地址,两次(但是由于是页读的方式,所以列地址,即页中的偏移量就是0)
(5)发送页编号,即行地址,分三次完成
(6)写入数据,用循环
(7)发送0x10命令
(8)等待RB信号变为ready
(9)发送命令0x70,
(10)读取写入结果,从数据寄存器读
(11)取消选中nandflash
(12)返回写入结果

最新文章

  1. Oracle 数据库重放(Database Replay)功能演示
  2. Python ORM Storm 源码修改
  3. Mac 识别NTFS移动硬盘
  4. IOS Animation-CAShapeLayer、UIBezierPath与Animation的结合
  5. .net获取本机公网IP代码
  6. maven工程通过命令打包
  7. liunx几台机器直接用ssh链接
  8. Graph database_neo4j 底层存储结构分析(8)
  9. 使用jQuery为表单添加回车事件
  10. Appium 切换上下文环境
  11. (转:亲测)cnblogs博文浏览[推荐、Top、评论、关注、收藏]利器代码片段
  12. css布局-多行文字垂直居中
  13. 使用hubuild,mui开发微信app—首页(一)
  14. Spring 4 支持的 Java 8 特性
  15. 浅谈js中的浅拷贝和深拷贝
  16. 关于Promise层层嵌套可读性差问题
  17. Linux 安装zabbix
  18. 关于flexjson将json转为javabean的使用
  19. 【Loadrunner】Loadrnner 参数化策略
  20. Qt5标准文件对话框类

热门文章

  1. 《Code Complete》ch.16 控制循环
  2. VC++2005下的ADO SQL语句(like,count,distinct)和操作(转)
  3. 如何用ASPxTreeView建立三级树(显示及数据绑定)
  4. haproxy配置文件简单管理
  5. 部署Ossim
  6. 阿里 Java面试 知识点
  7. linux tcp状态学习
  8. poj2503 哈希
  9. Android IOS WebRTC 音视频开发总结(五二)-- 亲,咱一起采访webrtc大会的各路专家
  10. 很不错的安卓FadingActionBar控件源码