新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C5402 DSP自举引导方法的分析与研究

C5402 DSP自举引导方法的分析与研究

作者:时间:2009-03-26来源:网络收藏

  .title ″example.asm″ ;源程序取名为example.asm

STACK .usect ″STACK″,10h ;为名为STACK的堆栈预留16个单元

.bss x, 4 ;在数据存储器中为未初始

.bss a, 4 化变量(续) x, a, y分别

.bss y, 1 预留4,4,1个单元

.def start ;

.data ;以下为数据段

table:.word 1, 2, 3, 4 ;在以标号table开始的8个

.word 8, 6, 4, 2 程序存储单元中存放8个已初始化数据

.text ;以下为程序段

start: STM # STACK+10,SP ;设置堆栈指针

STM # table, AR1 ;AR1指向table的首地址

STM # x, AR2 ;AR2指向存放变量x的首地址

STM # 7, AR0 ;AR0=7

LD # 0, A ;A=0

loop: LD *AR1+, A ;(AR1)→A, AR1=AR1+1

STL A, *AR2+ ;A→(AR2) , AR2=AR2+1

BANZ loop,*AR0- ;若AR0≠0,循环,AR0=AR0-1

CALL sum ;若AR0=0,调用sum子程序

end: B end ;

sum: LD #0, A ;A=0

STM #a, AR3 ;AR3指向存放变量a的首地址

STM #x, AR4 ;AR4指向存放变量x的首地址

RPT #3 ;

MAC *AR3+,*AR4+,A ;完成三次乘法累加运算

STL A,@y ;将结果存入预留的数据存储器中

RET ;返回主程序

.end ;结束汇编命令

  则生成的example.hex文件的内容如表2所示。

如果将example.hex的内容烧写至16位EPROM中,则其数据存储器内部组织结构如表3所示。

由表3 的EPROM数据组织结构可看出,在0FFFFh地址处存放的是自举表首地址8000h。从8000h处开始是16位自举表的内容。自举表的第一个字是16位自举标记10AA,第二、三个字分别为寄存器SWWSR及BSCR的内容。从第四个字开始分别是程序入口地址、各代码段长度、存放各代码段的目标地址及各段代码(本例含有程序段及数据段),最后为块结束标志0000h。这样, 一个正确的自举表就建立起来了。

  ’ 芯片为用户提供了丰富灵活的自举方式,用户可根据各自的需求选择不同的方式,其中并行自举是最常用的方式之一。正确建立自举表是充分利用功能的前提及关键。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭