kaiyun官方注册
您所在的位置:首页 > 嵌入式技术 > 设计应用 > ARM开发步步深入之NandFlash4KB突围
ARM开发步步深入之NandFlash4KB突围
摘要: 开发板上电启动后,自动将NandFlash开始的4K数据复制到SRAM中,然后跳转到0地址开始执行。然后初始化存储控制器SDRAM,调用NandFlash读函数操作把4KB后的点灯代码复制到SDRAM中,跳到点灯代码的入口点实现点灯操作。
关键词: ARM NandFlash
Abstract:
Key words :

  实验目的:突破4KB的Steppingstone存储空间限制,读取NandFlash中4KB后的代码实现“点灯大法”,借此掌握NandFlash的操作。

  实验环境及说明:恒颐S3C2410开发板H2410。H2410核心板的NandFlash选用的是三星片上(SOP)K9F1208U0M,该NandFlash容量为64MB。

  实验思路:开发板上电启动后,自动将NandFlash开始的4K数据复制到SRAM中,然后跳转到0地址开始执行。然后初始化存储控制器SDRAM,调用NandFlash读函数操作把4KB后的点灯代码复制到SDRAM中,跳到点灯代码的入口点实现点灯操作。

  知识掌握:NandFlash内部结构、命令字及存储控制器

  一、NandFlash内部结构

  不同开发板使用的NandFlash的型号可能不一样,本文只是以K9F1208U0M为例做个简单介绍。引脚描述如下所示:

 

  NandFlash存储单元结构图如下所示:

 

  Device、Block和Page之间的关系---1 Device = 4,096 Blocks = 4096*32 Pages = 128K Pages;1 Block = 32 Page;1 Page = 528 Byte = 512 Byte + 16 Byte。其中1 Page中包含有数据寄存器512 Byte和16 Byte的备用位用于ECC校验存储。所以有528 columns * 128K rows(Pages)。1 Page中的512 Byte的数据寄存器又分为两个部分1st 256 Bytes和 2nd 256 Bytes。用于数据存储的单元有 512 Bytes * 32 Pages * 4096 Blocks = 64 MB,用于ECC校验单元有16 Bytes * 32 Pages * 4096 Blocks = 2MB 。

  二、NandFlash命令字

  操作NandFlash时,先传输命令,然后传输地址,最后进行数据的读/写。K9F1208U0M的命令字如下所示:

  由于寻址需要26bit的地址,该26bit地址通过四个周期发送到NandFlash,如下图所示: 

  

此内容为AET网站原创,未经授权禁止转载。
Baidu
map