基于S3C4510B微处理器和uClinux实现存储系统的设计

发布者:平凡梦想最新更新时间:2023-01-06 来源: elecfans关键字:S3C4510B  微处理器  uClinux  存储系统 手机看文章 扫描二维码
随时随地手机看文章

1. 引言

对于嵌入式系统的开发人员来说,深刻地理解其存储系统的寻址原理和有效的管理存储系统对正确高效地设计嵌入式系统的硬件和底层软件编程具有重要的意义。目前嵌入式系统中最常用的存储器包括有EEPROM、FLASH、Normal DRAM和Sync.DRAM等。本文所采用的存储器包括有SDRAM和FLASH。S3C4510B(以下简称4510)微处理器是构建在ARM核ARM7TDMI之上的,ARM7TDMI的地址总线为32位的,4510的内部系统总线却是26bit:SA[25:0],它的外部地址总线却是22bit:ADDR[21:0],它们之间是如何译码的,而仅用14根外部地址总线为什么能够访问多达16MB的内存地址空间,本文就试图回答这些问题。最后还介绍了基于S3C4510B的存储系统在硬件级别上的设计即接口设计和uClinux中对存储系统编程的实现。


2.基于S3C4510B的存储系统原理

2.1.32位地址总线与26位内部系统总线的关系

ARM7TDMI把存储器看作是从零向上增长的许多字节的线性集合,0字节到3字节为第一个字,4字节到7字节为第二个字如此等等,它的地址总线是32位的,而4510的内部系统总线却是26bit的,也就是说它能够寻址的最大空间是226byte,即64MB的地址空间0x0000000~0x3FFFFFF。很显然构建在ARM7TDMI上的RISC微控制器4510的内部地址总线仅用到了ARM7TDMI的32位地址总线的低26位,并且是一一对应的相连。

2.2.4510寻址原理

基于S3C4510B微处理器和uClinux实现存储系统的设计


2.3.26位内部系统地址总线与22根外部地址总线的关系

4510通过设定寄存器EXTDBWIHD的值可以支持同外部存储器的8、16、32位接口,而SA[25:0]到ADDR[21:0]的地址译码就是依赖于这个不同接口的数据宽度。当4510发出字访问信号时,存储系统忽略低2位SA[1:0],即SA[2]与ADDR[0]相连,依次类推,直到SA[23]与ADDR[21]相连,同理当发出半字访问信号时,存储系统忽略低位SA[0],即SA[1]与ADDR[0]相连,依次类推,这样做的目的就是在原理图设计时4510的地址总线可以方便地与存储器的地址总线一一对应连接即可。

2.4.SDRAM的寻址问题

基于S3C4510B微处理器和uClinux实现存储系统的设计

以SDRAM芯片HY57V1620HG为例说明。该芯片的内部存储组织是4Banks*1M*16Bit,即共有4个Banks,每Bank中有1M个半字(16Bit)。因为该芯片引脚中有行地址锁存引脚#RAS和列地址锁存引脚#CAS,所以我们可以把每Bank看作如下图所示的一张存储单元阵列表格。其中每一个表格代表16Bit的数据存储单元。在实际工作中,首先Bank地址与相应的行地址是同时发出的,然后再同时发送列地址寻址命令与具体的操作命令(是读还是写),这时我们就先后选中了Bank、行地址和列地址,因此也就唯一确定了该存储单元阵列表格中的一个存储单元。至此我们就能明白了仅用它的12根地址线却能够访问8MB地址空间的问题。


3.存储系统接口电路具体设计

基于S3C4510B微处理器和uClinux实现存储系统的设计

从2.2节的分析可以知道所谓的片选信号对4510来说就是存储器组选择信号。4510把nRCS《5:0》用作FLASH的片选信号,把nSDCS[3:0]用作SDRAM的片选信号。从参考文献3看到HY57V1620的LDQM和UDQM两引脚是起到Data Input/Output Mask的作用。存储系统是如何利用这两个引脚的呢?当4510执行内存中半字数据读取指令LDRH、字节数据读取指令LDRB等指令时,这两个引脚就发挥作用了。例如当执行LDRB时,4510就会发出控制信号使得SDRAM1的UDQM、SDRAM2的LDQM和UDQM有效,就是它们把32位数据中的高24位屏蔽掉,从而进行字节读取。LDQM是Low (byte)DQ Mask的缩写。UDQM则是Upper (byte) DQ Mask的缩写。DQ指SDRAM的输入/输出数据。


上图是存储系统电路原理图。两片HY57V1620的并联设计是为了充分发挥32位MPU的性能


4.存储系统在嵌入式操作系统uClinux中的实现与配置

所谓的存储系统在uClinux中的实现与配置实质上就是对4510的各个存储器组的控制寄存器进行设置。此处运用的是uClinux-Samsung-20020318.tar.gz版本。所谓配置存储系统所有的4510相关特殊寄存器的宏定义在Linux-2.4.x/Include/Asm-armnommu/Arch-samsung/Hardware.h中。部分代码如下:

…。.

#define DSR0(2《《0)/*ROM Bank0数据宽度为半字*/

…。.

#define DSD0(3《《12)/*RAM Bank0数据宽度为字*/

…。.

#define ROM_BASE0_R((0x00000000》》16)《《10)/*ROM Bank0的基指针是0x000*/

…。.

#define SDRAM_BASE0_R((0x01000000》》16)《《10)?/*RAM Bank0基指针是0x0100*/

真正进行存储系统映射的代码在Linux-

2.4.x/Arch/Armnommu/Boot/Compressed/head.S部分代码如下:

……。

#ifdef CONFIG_ARCH_SAMSUNG

ldr r0,=SYSCFG/*设定系统寄存器的值*/

ldr r1,=rSYSCFG

str r1,[r0]

adr r0,SDRAM_SYSINIT_RESET/*设定初始化存储映射*/

ldmia r0,{r1-r12}

ldr r0,=SYS_INIT_BASE/*该宏定义位于上面提到的Hardware.h中,是外部存储寄存器组中第一个寄存器的地址*/

stmia r0,{r1-r12}

……


5.结束语

本文阐述了本人在嵌入式系统设计过程中遇到的关于存储系统方面问题,希望因同样问题感到迷惑的开发人员能从本文中获得启发和帮助,从而能够从更深的层次上理解和设计整个系统的硬件和软件。


关键字:S3C4510B  微处理器  uClinux  存储系统 引用地址:基于S3C4510B微处理器和uClinux实现存储系统的设计

上一篇:以S3C2440为平台对智能模拟人控制箱和按压通气功能的设计与实现
下一篇:基于S3C2410处理器目标板的Linux移植

推荐阅读最新更新时间:2024-11-05 11:13

数字电源技术
数字电源具有高性能和高可靠性的特点,其设计非常灵活。随著IC厂商不断推出新型号、性能更好的数字电源IC产品以及用户对数字电源认识的深入,数字电源的应用将会得到普及。 近年来,许多相关的因素导致对数字电源管理的需求急剧上升。许多板卡设计人员已经转向开发中间总线电源结构,通过使用多个单板DC/DC转换器来产生不同矽器件所需要的多样化的电源要求。这导致一个很明显的结果就是在产品的设计、生产测试及日常使用的过程中,配置、控制及监控这些电源将变得更加的复杂。光是控制上电/下电时序就需要专门的可编程集成电路及大量的额外部件,更别说用于灵活的系统级控制和诊断所需要的配置或实时反馈设施。 目前许多高性能的DC/DC转换器仍是通过简单的无源元件产
[应用]
基于ARM的嵌入式设备中uCLinux系统开发
1 引言 信息家电和手持设备大大加速了嵌入式系统的发展,而ARM体系32位高性能、低功耗处理器和嵌入式操作系统Linux无疑成为佼佼者。因为Linux源代码开放、免费,任何将其定制于PDA、掌上机或者便携式设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发,所以Linux在嵌入式开发领域得到稳步发展。uCLinux 即是目前嵌入式linux 中最流行的一种,它是针对微控制领域而设计的Linux系统,其最大特征就是没有MMU(内存管理单元模块),适合嵌入式系统小型化应用。   uCLinux支持多任务,支持多种文件系统,提供了对网络的强大支持,具有完整的TCP/IP协议栈,以及标准丰富的API。由于它的很多
[嵌入式]
微软与Rambus合作研发超低温DRAM存储系统
  量子计算机如今已经成为科技巨头们争夺的新高地,IBM、谷歌都涉猎其中。下面就随嵌入式小编一起来了解一下相关内容吧。   现在, 微软 也要在量子计算领域发挥能量了。   半导体技术公司Rambus最新宣布已经与 微软 达成合作,双方将研发一种能够在零下180摄氏度环境下稳定运行的 DRAM 系统,为未来的量子计算机服务。   Rambus研究所副总裁Gary Bronner介绍称,与 微软 的合作旨在零下180摄氏度环境下提升 DRAM 系统的容量和运算效率,并且降低功耗。   同时,高速串行/并行链路也能够在低温和超导环境中有效运行,从而确保整个存储系统在低温环境下的稳定。   研发这种超低温 DRAM 存储系统的主要原因
[嵌入式]
基于ARM的嵌入式语音存储系统设计
1 系统控制核心 嵌入式操作系统软硬件结构框图如图1所示,由硬件层、驱动层、系统层和应用层组成。硬件层包括嵌入式处理器最小系统、存储器(SD RAM、Flash、ROM等)、通用设备接口和I/O接口(A/D、D/A、I/O等),其中Linux实时操作系统和应用程序都可以固化在ROM中。硬件层的核心是嵌入式处理器,在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式处理器最小系统。中间的驱动层将上层软件和底层硬件分离开,为其连接提供接口。系统层主要负责软件硬资源的分配、内存管理、任务调度、文件处理等,是软件层的核心。应用层为用户提供编程接口,实现各种应用功能。 1.1 系统软件核心 Linux操作
[单片机]
基于ARM的嵌入式语音<font color='red'>存储系统</font>设计
预计到2018年机器人市场将达到18000亿元
机器人将带来一场具有重要意义的工业革命。工业机器人可以非常高效地执行重复性高的工作,它们既不需要吃任何东西也不会出什么差错,它们工作孜孜不倦并听从一切指挥,一天24小时不停歇。通常,生产工厂里面长长的走廊除了机器人别无他物。 除了工业机器人可从事重复性工作之外,装有感应器的智能机器人通过使用处理器和相机对生产过程进行自动控制。微处理器的使用可对基于传感器和相机输入的机器人运动进行智能控制。 平板电脑应用程序技术对所有的机器人都是一致的,可增加平台功能,提供基础平台控制。因为有标准化的潜在可能性,所以说机器人平台是一致的,但目前尚未能实现。进入平板电脑市场的公司将可从机器人市场的不断发展中大赚一笔。应用软件提供了一个可灵活适
[嵌入式]
嵌入式uClinux应用程序的NFS开发
在目标机上可以运行uClinux了,接着就需要开发完成特定任务的应用程序了。由于嵌入式uClinux的特殊开发环境(主机——目标机),其应用程序的开发模式也有多种。 一种是在主机上编写程序,然后编译、连接、调试,成功后将程序和内核一同编译并下载到目标板。这种模式中不利于开发的问题有:主机和目标机的运行环境(如指令集,函数库等)不同。另一种是通过网线或串口线将目标机和主机连起来,直接在目标机上开发调试。这种模式使用NFS将主机的特定目录mount到目标机上,对主机的操作就是对目标机的操作。采用 NFS模式可以方便应用程序的开发,减少映像文件的下载次数和对flash的烧写次数。这对于缩短开发周期,提高开发效率,加快产品的上市时间相当重要
[嵌入式]
苹果A4微处理器入主AppleTV,英特尔很受伤
  在刚刚结束的产品发布会上,苹果公司将其A4微处理器扩展到自己的所有非电脑产品上,降低了软硬件设计和制造成本。英特尔因此受到打击,不仅丢掉了AppleTV上的三个插口,非电脑方面的设计应用未来也可能会下滑。   苹果宣布最新款iPod Touch和重新发布的AppleTV都采用了A4处理器。A4处理器之前已经被用在iPad和iPhone 4上。   旧款AppleTV基本上就是一台使用了英特尔PentiumM级处理器、集成显卡的英特尔内存控制器,以及I/O芯片的PC。   UBM TechInsights公司商业情报副总裁Jeff Brown透露说,这三颗芯片成本约合60-65美元,封装面积975mm2,硅面积242mm2
[半导体设计/制造]
苹果A4<font color='red'>微处理器</font>入主AppleTV,英特尔很受伤
多核嵌入式微处理器前景光明
2007年10月13日报道,根据美国投资开发公司(VDC)的分析,在嵌入式应用领域,到2011年来自多核微处理器的收入将比2007年多6倍,是2006年收入的44倍。 VDC公司的白皮书预测,2007年嵌入式多核中央处理(CPU)的年收入为3.721亿美元,2009年将达到13.3亿美元。这预示着嵌入式CPU年收入增长将从2006年的0.507亿美元增长到2011年的22.3亿美元。 据VDC分析,单核处理器和性能受摩尔定律限制,采用简单通过增加时钟频率增加处理性能的做法将要达到上限。 VDC公司在题为《嵌入式应用领域的多核计算》的报告中还预测,存在于多核微处理器硬件和软件之间的主要问题是利用好新架构的优点。
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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