NOR FLASH AND NAND Flash
原文地址:http://tanatseng.blog.163.com/blog/static/1749916292010102233532911/?fromdm&fromSearch&isFromSearchEngine=yes 1.?????? 首先应该先了解Flash ROM的种类 NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。 NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。 通俗的说,只给地址不行,要先命令,再给地址,才能读到NAND的数据,在一个总线完成的。结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash 2.?????? Nand Flash的命令、地址、数据都通过I/O口发送,管脚复用,这样做的好处是,可以明显减少 NAND FLASH的管脚数目,将来如果设计者想将NAND FLASH更换为更高密度、更大容量的,也不必改动电路板。在S3C2440中NANDFLASH的控制依靠NAND FLASH控制器。不能够执行程序,本人总结其原因如下 : a.?????? NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU启动后是要取指令执行的,如果是 SROM、NOR FLASH 等之类的,CPU 发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。 3.?? 在2440中为什么可以配置成从Nand Flash中启动程序?? 4.?? Samsung S3C2440支持Nor Flash和Nand Flash启动,在TQ2440上可以通过跳线设置启动方式。 主要由OM[1:0]这两位来决定从何处启动。具体含义如下: OM[1:0]所决定的启动方式 OM[1:0]=00时,处理器从NAND Flash启动 OM[1:0]=01时,处理器从16位宽度的ROM启动 OM[1:0]=10时,处理器从32位宽度的ROM启动。 OM[1:0]=11时,处理器从Test Mode启动。 Arm的启动都是从0地址开始,所不同的是地址的映射不一样。在arm开电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。? 5.启动代码应该做什么? bootloader在某种意义上来说即是一个启动代码,种类有很多(vivi uboot 等),但是功能上无非就是完成一些初始化。bootloader是芯片复位后进入操作系统之前执行的一段代码,完成由硬件启动到操作系统启动的过渡,为运行操作系统提供基本的运行环境,如初始化CPU、堆栈、初始化存储器系统等,其功能类似于PC机的BIOS. 6.存储控制器的作用?? OM0?? 0(GND) ------NAN? ?1(VDD) -------NOR OM1?? 0(GND)? 一直接地? 那么16bit OM[3:2] = 00??? 决定了Main Clock Source 及 USB Clock Source 是来自crystal(晶振) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |