TQ2440系列二 存储器地址分配
转自:http://blog.csdn.net/neqelee/article/details/6600737 NOR FLASH 型号:AM29LV160DB/EN29LV160AB/S29AL016D70TFI02 AM29LV160DB是2M字节的NOR FLASH nGCS0接芯片nCE,OM0接高电平,OM1接低电平,数据宽度为16位,A0~A19选址1M,共计2M字节 分配地址为0x0000_0000~0x07ff_ffff,共计128MB TQ2440的NORFLASH地址为0x0000_0000~0x001f_ffff,共计2MB nGCS6接SDRAM的nSCS6引脚,分配地址为0x3000_0000~0x37ff_ffff,共计128MB TQ2440采用64MSDRAM,分配地址为0x3000_0000~0x33ff_ffff,共计64M ?OM[1:0]=00?从NAND FLASH启动?OM[1:0]=01 从NOR FLASH启动 上电时,程序会从Norflash中启动,ARM直接取Norflash中的指令运行。 NAND FLASH 以页为单位读写,要先命令,再给地址,才能读到NAND的数据。NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在8个BANK中分配地址。如果S3C2440被配置成从Nand Flash启动,S3C2440的Nand Flash控制器有一个特殊的功能,在S3C2440上电后,Nand Flash控制器会自动的把Nand Flash上的前4K数据搬移到4K内部SRAM中,系统会从起始地址是0x00000000的内部SRAM启动。程序员需要完成的工作,是把最核心的启动程序放在Nand Flash的前4K中,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到SDRAM中运行。 ? 由于Nand Flash控制器从Nand Flash中搬移到内部RAM的代码是有限的,所以在启动代码的前4K里,我们必须完成S3C2440的核心配置以及把启动代码(U-BOOT)剩余部分搬到RAM中运行,至于将2440当做单片机玩裸跑程序的时候,就不要做这样的事情,当代码小于4K的时候,只要下到nand flash中就会被搬运到内部RAM中执行了。 ? 不管是从NOR FLASH启动还是从NAND FLASH启动,ARM都是从0x00000000地址开始执行的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- C语言 结构体(Struct)详解及示例代码
- c – big endian和little endian值是否可移植?
- c# – 将设计师与主装配分开
- ruby-on-rails – 获取十进制数的分数部分
- NoSQL注入? (PHP的> phpcassa->卡桑德拉)
- xml – XPath中的translate和replace之间有什么区别
- ruby-on-rails – 资产管道路由助手解析为错误的URL或路径
- vb.net 教程 3-11 窗体控件综合编程 1
- 在SQLalchemy&SQLite中应该如何处理小数
- Oracle12c DataGuard Far Sync的配置和使用简介(上)