10640|1

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TMS320C54x DSP CPU与外设(二) [复制链接]

第三章 数据寻址

 

   C54x提供七类寻址方式:

l     立即数寻址

l     绝对地址寻址

l     累加器寻址

l     直接寻址

l     间接寻址

l     内存映象寄存器寻址

l     堆栈寻址

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

 

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。使用这类指令的好处在于不用修改DPAR值。但有一点要注意的是,这类指令不能用于重复执行单指令中(RPTRPTZ)。

 

2 直接寻址

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

2.1 DP方式

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

2.2 SP方式

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

 

3 间接寻址

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

3.1 SARAM的访问

SARAM访问使用寄存器AR0AR7,其中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)为dmadARx不更新

*+ARx(lk)

dmad=ARx+lk

ARx=ARx+lk

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

*+ARx(lk)%

dmad=circ(ARx+lk)

ARx=circ(ARx+lk)

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

*(lk)

dmad=lk

16位绝对地址寻址

 

循环寻址操作如下:

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

3.2 DARAM的访问

   DARAM访问使用辅助寄存器AR2AR5,用法见下表:

 

语 法

   

    

*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中内容

 

 

 

 

第四章 中断系统

 

   硬件和软件驱动都可以使C54x产生中断。软件中断是指由程序指令引起的中断,这类指令有:INTRTRAPRESET。硬件中断可由外部硬件引发,或由片内外设内部引发。无论软件中断还是硬件中断都可分为可屏蔽中断和不可屏蔽中断。C54x处理中断按以下三个步骤:

l     接收中断请求

l     响应中断

l     执行中断服务程序

 

3.2 中断标志寄存器IFR(以C549为例)

 

15-14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

保留

BMINT1

BMINT0

BXINT1

BRINT1

HPINT

INT3

TXINT

TRINT

BXINT0

BRINT0

TINT

INT2

INT1

INT0

 

IFR中某位为1表明有相应中断,再次写1清除中断。

3.2 中断屏蔽寄存器IMR(以C549为例)

 

15-14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

保留

BMINT1

BMINT0

BXINT1

BRINT1

HPINT

INT3

TXINT

TRINT

BXINT0

BRINT0

TINT

INT2

INT1

INT0

 

要打开某个中断,只需向IMR中相应某位写1。而ST1INTM位为中断总开关。

 

3.3 中断位置与优先级(以C549为例)

 

中断号

优先级

 

位 置

 

0

1

RS/SINTR

0

复位(软硬件)

1

2

NMI/SINT16

4

非屏蔽中断

2

SINT17

8

软件中断17

3

SINT18

C

软件中断18

4

SINT19

10

软件中断19

5

SINT20

14

软件中断20

6

SINT21

18

软件中断21

7

SINT22

1C

软件中断22

8

SINT23

20

软件中断23

9

SINT24

24

软件中断24

10

SINT25

28

软件中断25

11

-

SINT26

2C

软件中断26

12

-

SINT27

30

软件中断27

13

-

SINT28

34

软件中断28

14

-

SINT29

38

软件中断29

15

-

SINT30

3C

软件中断30

16

3

INT0/SINT0

40

外部中断0

17

4

INT1/SINT1

44

外部中断1

18

5

INT2/SINT2

48

外部中断2

19

6

TINT/SINT3

4C

定时器中断

20

7

BRINT0/SINT4

50

带缓存串口0接收中断

21

8

BXINT0/SINT5

54

带缓存串口0发送中断

22

9

TRINT/SINT6

58

TDM串口接收中断

23

10

TXINT/SINT7

5C

TDM串口发送中断

24

11

INT3/SINT8

60

外部中断3

25

12

HINT/SINT9

64

HPI口中断

26

13

BRINT1/SINT10

68

带缓存串口1接收中断

27

14

BXINT1/SINT11

6C

带缓存串口1发送中断

28

15

BMINT0/SINT14

70

BSP0失步检测中断

29

16

BMINT1/SINT13

74

BSP1失步检测中断

30-31

-

 

78-7F

保留

最新回复

这是上课笔记吧?  详情 回复 发表于 2007-3-24 10:20
点赞 关注
 

回复
举报

8

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

Re: TMS320C54x DSP CPU与外设(二)

这是上课笔记吧?
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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