历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2020年01月30日 | ARM的STRB和LDRB指令分析

2020-01-30 来源:eefocus

一、SDRAM

1、存储结构

SDRAM的内部是一个存储阵列。阵列就如同表格一样,将数据“填”进去。在数据读写时和表格的检索原理一样,先指定一个行(Row),再指定一个列 (Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理 

这个单元格(存储阵列)就叫逻辑 Bank(Logical Bank,下文简称 L-Bank)。 由于技术、成本等原因,不可能只做一个全容量的 L-Bank,而且最重要的是,由于 SDRAM的工作原理限制,单一的 L-Ban k将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在 SDRAM内部分割成多个 L-Bank,目前基本都是 4个(这也是SDRAM规范中的最高L-Bank数量),由此可见,在进行寻址时就要先确定是哪个 L-Bank,然后在这个选定的 L-Bank中选择相应的行与列进行寻址。

 

2、引脚说明

 

DQM可以阻塞其对应的空间长度(8位)的有效性。例如,当LDQM有效时,如果输出时,将输出的[7,0]位置成高阻态;如果输入,则阻碍[7,0]的输入,也就是不能修改[7,0]的数据。当UDQM有效时,如果输出时,将输出的[15,8]位置成高阻态;如果输入,则阻碍[15,8]的输入,也就是不能修改[15,8]的数据。


3、S3C2440与内存相关的硬件电路图

SDRAM以两片32M的K4S561632构成64M的RAM存储为例进行说明。

 

4、对SDRAM访问的步骤

(1) CPU发出片选信号nSCS0有效,选中SDRAM芯片

(2) SDRAM中有4个L-Bank,需要2根地址信号选中一个,利用的是ADDR24和ADDR25

(3) 先后发出行地址信号和列地址信号。K4S561632的行地址数是13,列地址数是9。所以,当nSRAS有效时,ADDR2~ADDR14上发出的是行地址信号,它对应32位地址空间的bit[23:11];当nSCAS有效时,ADDR2~ADDR10上发出的是列地址信号,它对应32位地址空间的bit[10:2]。由于BANK6以32位宽度外接SDRAM,ADDR0、ADDR1恒为0,不参与译码。

(4) 找到存储单元后,被选中的芯片就要进行统一的数据传输了。


二、分析ldrb/strb指令

1、S3C2440有关ldrb/strb指令的描述

2、LDRB

ldrb指令会根据提供的地址,从数据总线中选择需要的字节。例如:

    ldrb r0,0x30000000取的是0x30000000这个字的[7,0]

    ldrb r0,0x30000001取的是0x30000000这个字的[15,8]

    ldrb r0,0x30000002取的是0x30000000这个字的[23,16]

    ldrb r0,0x30000003取的是0x30000000这个字的[31,24]

也就是说ldrb指令会先把0x30000000这个地址的字取出来,然后根据ldrb指令提供的地址选择合适的字节。


ldrb指令接下来要把取到的数据放在目的寄存器的低8位,然后将高24位填充为0。


3、STRB

STRB指令首先数据总线(整个字的四个字节)都填充上要写入的一个字节的数据。然后,外部存储系统激活合适的字节存储子系统去存储这一个字节的数据。


“外部存储系统激活合适的字节存储子系统去存储这一个字节的数据”这句话,我是这样理解的,以"strb r3,[r4]"为例进行说明。

假设r3 = 0x12 ,r4 = 0x30000001


STRB指令首先数据总线上都填充上要写入的一个字节的数据,也就是数据总线为0x12121212,访问的字地址是0x30000000。因为要存储一个字节的数据到0x30000001,而0x30000000这个字的其他单元不能更改,所以就将DQM0、DQM2、DQM3都有效,而不屏蔽DQM。这样在写入的过程中,只将0x12写入到0x30000001单元中,而其他三个单元不修改,从而完成strb指令规定的任务。

推荐阅读

史海拾趣

Feller US公司的发展小趣事

随着全球汽车产业的不断发展,国际合作已成为企业拓展市场、提升竞争力的重要途径。菲斯克也深刻认识到了这一点,积极寻求与全球各地的汽车制造商和供应商建立合作关系。通过与国际巨头的合作,菲斯克不仅获得了先进的技术和管理经验,还成功进入了多个国际市场,实现了全球布局的目标。这一系列的国际合作不仅提升了公司的知名度和影响力,还为公司的长期发展提供了有力的支持。

General Semiconductor ( Vishay )公司的发展小趣事

随着公司的发展,Vishay意识到通过收购可以迅速扩大市场份额和提升技术实力。从1985年开始,Vishay进行了一系列战略收购,包括达勒电子(Dale Electronics)、迪劳瑞电子(Draloric Electronics)和思芬尼(Sfernice)等。这些收购不仅为公司带来了更多的产品线,如电感、专用电容等无源元件,还极大地增强了Vishay在电子元件市场的竞争力。通过这一系列收购,Vishay逐渐发展成为一家拥有广泛产品线的电子元件制造商。

GE (General Electric)公司的发展小趣事
检查继电器、接触器、转换开关等控制元件是否接触良好,有无损坏或松动现象。
全鹏(CHAMPION)公司的发展小趣事

随着全鹏在巴西市场的稳固地位,公司决定在2006年创立C3 TECH品牌,以进一步提升其品牌影响力。C3 TECH品牌的创立不仅增强了全鹏在巴西市场的竞争力,还为公司带来了更多的商机。通过精心策划的市场营销活动和优质的产品质量,C3 TECH品牌迅速获得了当地消费者的认可,并在市场上树立了良好的口碑。

中科银河芯(GXCAS)公司的发展小趣事
为了使三极管在输入信号为高电平时能够饱和导通,需要给基极提供足够的电流。这通常通过选择合适的基极电阻来实现。
芯茂微电子公司的发展小趣事

芯茂微电子始终坚持品质至上和客户至上的原则,致力于为客户提供高品质、高性能的集成电路产品和服务。公司建立了完善的质量管理体系和客户服务体系,从产品研发、生产、销售到售后服务,每一个环节都严格把控,确保产品质量和客户满意度。正是凭借这种对品质和客户的执着追求,芯茂微电子赢得了客户的广泛信赖和赞誉。

问答坊 | AI 解惑

不光可以晒创意,还可以晒电子方面的任何东西哦

如题, 比如电子焊接中碰到的稀奇古怪的事,或者好的窍门,贴出来供广大电子爱好者一个走捷径的机会,先谢过大家的无私奉献, …

查看全部问答>

大家觉得搞单片机(嵌入式电子技术开发)累吗???

大家觉得搞单片机(嵌入式电子技术开发)累吗??? http://bbs.21ic.com/viewthread.php?tid=127427…

查看全部问答>

定时器产生的中断请求,如何获取来响应自己的程序呢?

定时器产生的中断请求,如何获取来响应自己的程序呢? 我想利用定时器在指定的时间到达时,执行我写的一段程序,怎么获取定时器的这个中断呢? 有例程最好,我不知道这个过程如何写,是不是中断有一个固定的模式?? 新手求指教啊~~~~…

查看全部问答>

PSDSoft Express软件生成的编程文件obj格式解析

各位好:     最近用到PSDSoft Express软件,其生成的编程文件obj中,包含:PLD映射,SRAM数据,EPROM数据,不知如何划分!因为编程PSD501芯片要用到这个文件.    另外,发现此软件生成的项目中,在生成obj文件之前,会自动 ...…

查看全部问答>

谁能给我讲下SPI总线是如何识别相同设备优先级的?

就是在一个SPI总线上我有两个一样的IC,A,B;现在SPI总线是如何识别他们两个呢?怎样确定他们的优先级呢?比如说要把A的那个信号切换到什么状态的方法? 请高手指教!…

查看全部问答>

为什么Eboot阶段的功耗大于wince运行阶段

首先介绍一下我的系统:PXA270 + wince5.0 系统启动过程,上电 --> eboot将wince5.0镜像从flash 搬运到RAM中, -->跳转到RAM运行 现象:用4.2V给系统供电,正极串入电流表,在eboot阶段的电流为300mA左右,跳转到wince5.0后,功耗降到220mA,在bo ...…

查看全部问答>

求助:NiosII的模拟I2C控制没有应答

使用NiosII控制高频头CU1216,在NiosII IDE中运行下列程序后,由于没有应答,程序死在Write_I2C_Byte函数的while(I2C_Ackn() );,reset,sda,scl均加了上拉电阻,进行了一些检查均没有结果 ,哪位高手能帮我指点迷津?谢谢。 #include \"i2c.h\" ...…

查看全部问答>

6.07【每日一问】return是函数吗?

return 大家都不陌生吧,我想每个人写的第一个程序基本都差不多,就是helllo world,就是现在,我在验证平台的时候还是会用hello world,但是大家不知道有没有关注return,它是函数吗?这些细节问题在公司的笔试面试最容易考你了!~#incude <stdi ...…

查看全部问答>

这个屏幕到底是个什么屏呢

图片是一个跟430手表一样方案的手表叫做metwatch可以配合智能手机使用,两张图片一张是在阳光下,一张是在无阳光的地方,液晶的表现都很清晰,有没有人认识这个到底是什么类型的液晶…

查看全部问答>

关于 正弦波信号发生器的问题

我最近在设计一个正弦波发生器的过程中,出现了很诡异的问题。频率稍微上调多点,输出波形就截止。采取fpga的de0开发板,方案如下:1.  频率处理以及显示(元件1) ——> 输出整形(integer)频率  f2. 输入频率  —— ...…

查看全部问答>