NOR FLASH的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NOR FLASH的地址线和数据线是分开的。
AM29LV160DB是一个2Mbyte的NOR FLASH,分区结构是:
1个16Kbyte扇区,2个8Kbyte扇区,1个32Kbyte扇区,31个64Kbyte扇区(字节模式)
1个8Kbyte扇区,2个4Kbyte扇区,1个16Kbyte扇区,31个32Kbyte扇区(半字模式)
共35个扇区。
AM29LV160DB第47脚是BYTE#脚,BYTE#接高电平时,器件数据位是16位,接低电平时,数据位是8位。上图BYTE#接VCC,D0-D15做为数据输入输出口。
A0-A19是地址线,在半字模式下,D0-D15做为数据输入输出口。因为数据位是16位,A0-A19可以选择2^20 = 1M *2BYTE = 2Mbyte。正好是AM29LV160DB的容量。S3C2440的ADDR1要接AM29LV160DB的A0。上图中AM29LV160DB的A20,A21是空脚,分别接的是LADDR21,LADDR22。这应该是为了以后方便扩展NOR FLASH的容量。LADDR21,LADDR22对AM29LV160DB是没用的。
当BYTE#接低电平时,D0-D7做为8位数据输入输出口,D15做为地址线A-1。相当于有了A-1,A0-A19共21根地址线。这个时候S3C2440的ADDR0应该接在D15(A-1)。。。。ADDR20接A19。21根地址线的寻址空间是2^21 = 2Mbyte。正好是AM29LV160DB的容量。
关键字:S3C2440 NOR FLASH 接线分析
引用地址:
S3C2440与NOR FLASH(AM29LV160DB)的接线分析
推荐阅读最新更新时间:2026-03-22 15:45
使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法
1. 简要说明 JLink的调试功能、烧写Flash的功能都很强大,但是对于S3C2410、S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。 本文使用一个间接的方法来实现对S3C2410、S3C2440开发板的Nor、Nand Flash的烧写。原理为:JLink可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写。 2. 操作步骤 2.1 连接硬件 对于大多数的S3C2410、S3C2440开发板而言,它们所用的JTAG接口一般有3种
[单片机]
S3C2440裸机------Nor Flash编程_识别
1.编写菜单程序 首先我们编写一个测试菜单程序,用来获取norFlash信息以及对NorFlash进行读写操作,代码如下: void nor_flash_test(void) { char c; while (1) { /* 打印菜单, 供我们选择测试内容 */ printf( Scan nor flashnr ); printf( Erase nor flashnr ); printf( Write nor flashnr ); printf( Read nor flashnr ); printf( quitnr ); printf( Enter selection:
[单片机]
S3C2440裸机------Nor Flash编程_擦写读
1.读NorFlash 我们首先来实现读flash的函数,我们默认每次读取64个字节,然后我们把读取到的内容打印出来,其中前面打印数值,后面打印字符,对于不可见字符用...代替。 void do_read_nor_flash(void) { unsigned int addr; volatile unsigned char *p; int i, j; unsigned char c; unsigned char str ; /* 获得地址 */ printf( Enter the address to read: ); addr = get_uint(); p =
[单片机]
S3C2440从NAND Flash启动和NOR FLASH启动的问题
1.为什么NAND FLASH不能直接运行程序 NAND FLASH本身是连接到了控制器上而不是系统总线上。CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM、NOR FLASH 等之类的,CPU 通过地址线发个地址就可以取得指令并执行,NAND FLASH不行,因为NAND FLASH 是管脚复用,它有自己的一套时序,这样CPU无法取得可以执行的代码,也就不能初始化系统了。 NAND FLASH是顺序存取设备,不能够被随机访问,程序就不能够分支或跳转,这样你如何去设计程序。 U-BOOT 支持ARM、 PowerPC等多种架构的处理器,也支持Linux、NetBSD和VxWorks等多种操作系
[单片机]
使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法
1. 简要说明 JLink的调试功能、烧写Flash的功能都很强大,但是对于S3C2410、S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢;烧写Nand Flash只是从理论上能够达到,但是还没有人直接实现这点。 本文使用一个间接的方法来实现对S3C2410、S3C2440开发板的Nor、Nand Flash的烧写。原理为:JLink可以很方便地读写内存、启动程序,那么可以把一个特制的程序下载到开发板上的SDRAM去,并运行它,然后使用这个程序来烧写。 2. 操作步骤 2.1 连接硬件 对于大多数的S3C2410、S3C2440开发板而言,它们所用的JTAG接口一般有3种(
[单片机]
对Nor Flash的操作(S3C2440)
Nor Flash介绍 Nor Flash的连接线有地址线,数据线,片选信号读写信号等,Nor Flash的接口属于内存类接口,Nor Flash可以向内存一样读,但是不能像内存一样写,需要做一些特殊的操作才能进行写操作,读只需像内存一样读很简单。 nor 的原理图 FLASH简介 常用的Flash类型有Nor Flash和NAND Flash两种。 Nor Flash由Intel公司在1988年发明,以替代当时在市场上占据主要地位的EPROM和E2PROM。NAND Flash由Toshiba公司在1989年发明。两者的主要差别如下表: Nor Flash支持XIP,即代码可以直接在Nor Flash上执行,无需复制
[单片机]
s3c2440裸机-内存控制器(三-3、norflash编程之uboot中操作norflash)
前提: norflash初始化正常,能够正常从nor上执行。 cpu总是从0地址读取指令执行程序。当cpu设置成nor启动时,0地址对应nor。cpu从nand启动时,0地址对应sram。 1.读取norFlash 我们将板子设为nor启动,那么0地址对应nor,我们先将uboot烧写到nor中。我们先看下这款NorFlash的手册,找到操作flash的命令表: 下面简单的举一些例子: 1)复位(reset): 往任何一个地址写入F0即可。 2)读ID: 很多的Nor Flash可以配置成位宽16bit(Word),位宽8bit(Byte),我们这款norflash数据位宽为16bit。下面我们按照nor手册上的命令表
[单片机]
s3c2440学习之路-004 区分nand/nor 启动
硬件平台:jz2440 软件平台:Ubuntu16.04 arm-linux-gcc-3.4.5 源码位置: https://github.com/lian494362816/C/tree/master/2440/005_leds/002 1.原理分析 1.1问题的由来 前面篇文章 https://blog.csdn.net/lian494362816/article/details/84642425 提到了SP的设置,但是当使用nand flash 和 nor flash启动时,2440内部的sram位置是不同的, SP的设置也不同。使用nor flash时,内部sram起始位置为0x40000000, 而使用nand fl
[单片机]