TMS320C54x DSP CPU与外设(三)

来源:本站
导读:目前正在解读《TMS320C54x DSP CPU与外设(三)》的相关信息,《TMS320C54x DSP CPU与外设(三)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《TMS320C54x DSP CPU与外设(三)》的详细说明。
简介:主要讲解数据寻址中的绝对地址寻址、直接寻址和间接寻址等。

第三章 数据寻址

C54x提供七类寻址方式:

立即数寻址

绝对地址寻址

累加器寻址

直接寻址

间接寻址

内存映象寄存器寻址

堆栈寻址

下面着重介绍以下几种方式。

1绝对地址寻址

术语解释:dmad-数据存储地址;pmad-程序存储地址;PA-口地址;lk-长整数。

绝对地址寻址包括四类:

l dmad寻址

l pmad寻址

l PA寻址

l *(lk)寻址

1.1 dmad寻址

dmad寻址用一标号标记数据空间地址,这类指令有:

l MVDK Smem,dmad

l MVDM dmad,MMR

l MVKD dmad,Smem

l MVMD MMR,dmad

如:MVKD SAMPLE,*AR5。此处SAMPLE即是dmad。

1.2 pmad寻址

pmad寻址用一标号标记程序空间地址,这类指令有:

l FIRS Xmem,Ymem,pmad

l MACD Smem,pmad,src

l MACP Smem,pmad,src

l MVDP Smem,pmad

l MVPD pmad,Smem

如:MVPD TABLE,*AR7-。此处TABLE即为pmad。

1.3 PA寻址

PA寻址用一标号标记外部I/O口地址,这类指令有:

l PORTR PA,Smem

l PORTW Smem,PA

如:PORTR FIFO,*AR5。此处FIFO即为PA。

1.4 *(lk)寻址

*(lk)寻址也是用标号标记数据空间地址。

如:LD *(BUFFER),A。使用这类指令的好处在于不用修改DP和AR值。但有一点要注意的是,这类指令不能用于重复执行单指令中(RPT,RPTZ)。

2直接寻址

在这类指令中,指令中的地址标号构成dmad的低7位(DP方式)或作为正向偏移量(SP方式)。所以指令中地址标号不得超过7位,采用DP或SP方式,由ST1中CPL位决定。CPL=0,采用DP方式;CPL=1,采用SP方式。

2.1 DP方式

DP方式,DP中内容作为dmad地址高9位,指令中地址标号作为低7位构成dmad地址。

2.2 SP方式

SP方式,以SP中内容作为dmad基地址,指令中地址标号作为正向偏移量,二者相加构成dmad地址。

3间接寻址

间接寻址是指dmad由辅助寄存器AR0-AR7内容构成。使用间接寻址的灵活性不仅在于一条指令完成读或写数据存储区(单操作数),还在于一条指令可以完成两个不同存储区的读操作,或两个不同存储区的写操作,或对两个不同位置的一读一写操作。

3.1对SARAM的访问

对SARAM访问使用寄存器AR0-AR7,其中AR0为变址寄存器。用法见下表:

语 法

功 能

描 述

*ARx

dmad=ARx

ARx包含dmad

*ARx-

dmad=ARx

ARx=ARx-1

访问后,ARx中地址内容减1

*ARx+

dmad=ARx

ARx=ARx+1

访问后,ARx中地址内容加1

*+ARx

dmad=ARx+1

ARx=ARx+1

访问前,ARx中地址内容加1

*ARx-0B

dmad=ARx

ARx=B(ARx-AR0)

访问后,ARx中内容减去AR0中内容,并产生反向借位翻转(用于FFT算法)

*ARx-0

dmad=ARx

ARx=ARx-AR0

访问后,ARx中内容减去AR0中内容

*ARx+0

dmad=ARx

ARx=ARx+AR0

访问后,ARx中内容减去AR0中内容

*ARx+0B

dmad=ARx

ARx=B(ARx+AR0)

访问后,ARx中内容加上AR0中内容,并产生反向进位翻转(用于FFT算法)

*ARx-%

dmad=ARx

ARx=circ(ARx-1)

访问后,ARx中内容按循环寻址方式减1

*ARx-0%

dmad=ARx

ARx=circ(ARx-AR0)

访问后,ARx中内容按循环寻址方式减去AR0中内容

*ARx+%

dmad=ARx

ARx=circ(ARx+1)

访问后,ARx中内容按循环寻址方式加1

*ARx+0%

dmad=ARx

ARx=circ(ARx+AR0)

访问后,ARx中内容按循环寻址方式加上AR0中内容

*ARx(lk)

dmad=ARx+lk

ARx=ARx

ARx中内容加上16位长偏移(lk)为dmad,ARx不更新

*+ARx(lk)

dmad=ARx+lk

ARx=ARx+lk

ARx中内容加上16位长偏移(lk)为dmad,ARx更新

*+ARx(lk)%

dmad=circ(ARx+lk)

ARx=circ(ARx+lk)

ARx中内容按循环寻址方式加上16位长偏移(lk)为dmad,ARx更新

*(lk)

dmad=lk

16位绝对地址寻址

循环寻址操作如下:

寄存器BK作为循环缓存区大小(R)。循环缓存区基地址的低N位必须为0。R和N满足以下关系:。末地址为基地址+R。步进值。变址index由以下算法确定:

若;

若;

若。

3.2对DARAM的访问

对DARAM访问使用辅助寄存器AR2-AR5,用法见下表:

语 法

功 能

描 述

*ARx

dmad=ARx

ARx包含dmad

*ARx-

dmad=ARx

ARx=ARx-1

访问后,ARx中地址内容减1

*ARx+

dmad=ARx

ARx=ARx+1

访问后,ARx中地址内容加1

*ARx+0%

dmad=ARx

ARx=circ(ARx+AR0)

访问后,ARx中内容按循环寻址方式加上AR0中内容

提醒:《TMS320C54x DSP CPU与外设(三)》最后刷新时间 2024-03-14 00:54:45,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《TMS320C54x DSP CPU与外设(三)》该内容的真实性请自行鉴别。