关于S3C2440的地址分配的分析

发布者:花开堂前最新更新时间:2018-06-05 来源: eefocus关键字:S3C2440  地址分配 手机看文章 扫描二维码
随时随地手机看文章

       在研究2440开发板的时候,通过对2440芯片的和各种存储芯片的理解,略有感悟。本贴主要是关于s3c2440硬件平台设计,从事嵌入式软件的朋友可以当做参考,同时欢迎各路硬件牛人多提建议。S3C2440A是三星推出的16/32bit的RISC MPU(RISC微处理器。RISC:educed instruction set computer,精简指令集计算机,是一种执行较少类型计算机指令的微处理器);2440具有1G byte的寻址空间(8banks,128M/bank)。2440芯片所有引脚中分配了27根地址线(A0~A26),换言之,也就128的地址空间。同时,在2440芯片中提供了nGCS0~nGCS7 8路片选信号线,分别对应芯片中的8个bank,8*128M=1G(具体情况是否如此有待考证,但在本贴开始的参考帖子中是这样说明的)。
        本人手头有一块mini友善之臂的学习板,开始对2440与SDRAM(HY57V561620)的接线中有点很是迷糊(也是开始研究2440存储空间的初衷),2440的地址线A2连接SDRAM的A0,想必对硬件稍有了解的人都会对此多少有些疑惑,为什么地址线没有按位对齐。在这里我们分析一下HY57V561620芯片,4banks*4M*16bit,也就是说按字(16bit)存取内部数据,但是在友善之臂的硬件平台中是通过两片HY57V561620芯片扩展成了32位的数据宽度,同时,2440也配置成32位访问模式 ,这样可以加快访问速度。由于在市场上的存储芯片中有数据宽度为8位、16位和32位的,在2440中,就增加了nWBE[3:0]这四个引脚,来识别这些芯片的的数据宽度,这样便可以不至于局限于某一类存储芯片。
       (下面的分析与参考贴中有所出入,个人觉得参考贴中的分析有不妥)

        回到上文提出的地址按位对齐的问题,由于这个时候数据宽度为32位,在存储芯片中的存储单位都通过字节(8bit)来实现,也就是说寻址的时候需要按双字来对齐地址,所以A0、A1就不需要与 HY57V561620的地址总线对齐 。在这里一个新的问题出现了, HY57V561620的存储空间为64M,但是地址线宽度为13位(A0~A12),在友善之臂学习板中2440中的A2~A14分别接 HY57V561620种的A0~A12,13位地址线不够分配64M的地址空间,但是在 HY57V561620是通过分别访问行地址和列地址来存取内部数据的,行地址和列地址公用这13位的地址线(其中行地址共用A0~A12这13位地址线,列地址共用A0~A8这9位地址线),2^13*2^9*16bit=4M*16bit,但是这只是 HY57V561620中每个bank的大小, HY57V561620中含有4个bank,同时它还提供了BA0~BA1来选择寻址时访问的bank号,在友善之臂学习板中2440的A24~A25分别 HY57V561620中的BA0~BA1,在每次访问 HY57V561620时2440先根据A24~A25判断 HY57V561620中将要访问的bank号,再行、列地址访问 HY57V561620中的16bit数据(这里是分析单片 HY57V561620,没有将两片放在一起分析),如此便可完成单片32M地址的寻址(为什么不是64M因为每次从单片中存取的数据为16bit)。



mini2440原理图


关键字:S3C2440  地址分配 引用地址:关于S3C2440的地址分配的分析

上一篇:关于存储器与ARM连线方式及地址的确定
下一篇:关于S3C2440存储器地址分配和启动流程分析

推荐阅读最新更新时间:2024-03-16 16:04

S3C2440 启动流程及汇编代码知识
1、框架 2、启动过程 大多数ARM芯片从0地址启动 NOR启动:NOR Flash 基地址为0,片内 RAM 地址为 0X4000,0000 CPU 读出Nor上第一个指令(前四个字节),执行 CPU继续读出其他指令执行 Nand启动:片内 4K RAM 基地址为0,Nor Flash 不可访问 2440硬件把Nand前4K内容复制到片内 RAM 然后 CPU 从0地址取出第一条指令 例如:(汇编代码) ldr sp, =4096 /* nand启动 */ ldr sp, =0x40000000+4096 /* nor启动 */ 3、几条常用汇编指令 LDR: 读内存 LDR R0, 读取地
[单片机]
<font color='red'>S3C2440</font> 启动流程及汇编代码知识
s3c2440的触摸屏应用与校正
触摸屏是当今最流行的一种人机交互接口,它被广泛地应用于手机等消费类电子产品中,目前这种技术有向PC机方向发展的趋势。基于原理的不同,触摸屏可以分为电阻式、电容式、表面声波式等。电阻式是应用较广的一种触摸屏,它的原理是通过测量横向和纵向的电阻值来获得触点的坐标。 s3c2440集成了4线制电阻式的触摸屏接口,触点坐标的检测是通过A/D转换来实现的。s3c2440一共有4种触摸屏接口模式,其中,自动(连续)XY坐标转换模式和等待中断模式应用地比较常见。等待中断模式是在触笔落下时产生一个中断,在这种模式下,A/D触摸屏控制寄存器ADCTSC的值应为0xD3,在系统响应中断后,XY坐标的测量模式必须为无操作模式,即寄存器ADCTSC的低
[单片机]
<font color='red'>s3c2440</font>的触摸屏应用与校正
s3c2440之IIS(4)S3C2440的I2S控制器
一、I2S控制器结构框图 S3C2440A的Inter-IC Sound (IIS)总线接口作为一个编解码接口连接外部8/16位立体声音频解码IC用于迷你碟机和可携式应用。IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式取代了中断。它可以在同一时间接收和发送数据。 图1 结构框图 1 、总线接口,寄存器组和状态机(BRFC):总线接口逻辑和FIFO 访问由状态机控制。 2、5 位双预定标器(IPSR):一个预定标器用于IIS 总线接口的主时钟发生器,另外一个用作外部编解码时钟发生器。 3、64 位FI
[单片机]
<font color='red'>s3c2440</font>之IIS(4)<font color='red'>S3C2440</font>的I2S控制器
s3c2440的UART用法
SPI、IIC和UART是最常用的三种串行总线,这三种总线在s3c2440中都被集成了。在这里我们主要介绍UART,另两个总线在后面的文章中给出。 UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)用于异步通信,可以实现全双工发送和接收。它不仅可以实现不同嵌入式系统之间的通信,还可以实现与PC之间的通信。 s3c2440提供了三个UART端口,它们都可以通过查询、中断和DMA方式传输数据,而且每个UART都分别有一个64个字节的接收FIFO和一个64个字节的发送FIFO。在这里,我们只给出非FIFO模式,即传输数据不利用FIFO缓存,一
[单片机]
一种基于WinCE6.0的数字调频收音机的设计
本设计利用数字收音机芯片Si4730,为基于WincE6.0的智能系统集成FM功能提供了一种很好的解决方案,该方案实现了全频手动与自动搜台等功能。 1 基于WinCE6.0的系统设计流程 如图1所示,基于WinCE 6.0的系统设计一般分为3个过程:针对不同的硬件平台设计BSP包,BSP包括Boot-loader、OAL和驱动程序;针对系统的需求,利用Platform Builder for CE 6.0选择合适的组件,构建操作系统并导出SDK;在SDK的支撑下开发应用程序。 WinCE 6.0与其早期版本相比,开发工具有了较大的变化。Platform Builder已经不是一个单独发行的工具,Platform B
[单片机]
一种基于WinCE6.0的数字调频收音机的设计
04-S3C2440u-boot学习之u-boot分析(2)之Makefile结构分析
看uboot说明知道,uboot编译需要 (1)先配置 make 。。。 (2)make。 一:配置过程 make 100ask24x0 (1)解压打号补丁的u-boot-1.1.6,打开makefile。 (2)make 100ask24x0_config相当于执行: a.首先执行make uconfig,删除相关配置文件。 b.@$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0 MKCONFIG:= $(SRCTREE)/mkconfig(根目录下有个mkconfig脚本文件) $(@:_config=)
[单片机]
04-S3C2440u-boot学习之u-boot分析(2)之Makefile结构分析
s3c2440裸机-LCD编程(四、实现显示功能)
1.让LCD显示满屏红色 我们想要在LCD上显示出数据,所需步骤如下: a. 初始化LCD b. 使能LCD c. 获取LCD参数: fb_base, xres, yres, bpp d. 往framebuffer中写数据 1.初始化LCD工作我们在前面一节框架准备和LCD初始化已经详细介绍了。 2.使能LCD void lcd_enable() { lcd_controller_enalbe(); //会间接调用s3c2440_lcd_controller_enalbe } 3.获取LCD参数 void get_lcd_params(unsigned int *fb_base, int *xres, int
[单片机]
S3C2440裸机------SPI_FLASH编程
1.spi_flash.h #ifndef _SPI_FLASH_H #define _SPI_FLASH_H void SPIFlashReadID(int *pMID, int *pDID); void SPIFlashInit(void); void SPIFlashEraseSector(unsigned int addr); void SPIFlashProgram(unsigned int addr, unsigned char *buf, int len); void SPIFlashRead(unsigned int addr, unsigned char *buf, int len); #endif
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved