DSP

DSP嵌入式系统程序的汇编编写原则

2019-07-13 09:47发布

汇编语言的使用需要使用者对硬件和汇编语言的语法结构都有所了解。首先介绍一下DSP芯片的硬件结构: (1)CPU,CPU是一个芯片的核心,是进行数据运算的地方。具体怎么运算,使用什么东西来运算的呢?那就涉及CPU的内部组成结构问题了。CPU是由输入定标部分,乘法部分,算数逻辑本分组成。输入定标就是将数据的长度增长,达到标准。输入定标是数据进行运算的第一步,计算机处理数据时,只能处理数据长度一样的数据,因此需要进行输入定标。输入定标一般采用一个输入移位寄存器,通过移位的方法进行数据长度一致。接下来是乘法部分:乘法部分包括:用来存放乘数和被乘数的寄存器,以及用来进行乘法运算的乘法运算器。数据经过移位处理后进入ALU算数逻辑部分进行算数逻辑运算,包括:二进制算数运算和逻辑运算,具体怎么算要看操作指令。也就是说,之前的乘法,移位只是为了把数据弄整齐一些,具体怎么算还是靠ALU部分根据指令来进行操作。 (2)寄存器组:DSP包含很多寄存器组,每个寄存器都有指定的工作。一般寄存器的功能是用来存储数据或者存放操作数所在地址,根据这个地址进行寻址,什么叫寻址?寻址就是通过这个寄存器的内容,这个内容就是我们要找的数的地址,找的这个地址所映射的存储器地址上的数据。而不同的大小的数据,需要采用不同的寻址方式。这些不同大小的数据需要放在不同的寄存器中。 (3)存储空间:介绍完了地址放在的地方,找到了这些地方就看到了地址的大小,接下来介绍怎么根据这些地址,找到地址上的数据。我们的地址是按照顺序排列在存储器中的。我们现在要根据这些地址去找数据,就相当于知道了门牌号去到一个大楼里找一个房间。我们的房间里一般放了两样东西,程序和数据。程序一般比数据小一点,就放在前几个房间。数据比较多,不仅放在了前几个房间还放在了之后的房间中。这就说出了一个特性,在DSP中,在低4M的空间中既可以放数据也可以放程序。回到存储器中,我们存储器这个大楼里包含不同名字的房间有:SRAM,M0,L0,,,,每种类型房间存放不同类型数据。其中比较特殊一个房间是外设接口,这个存储器在使用外设时,通过片选信号给外设赋予地址,这样就可以通过CPU经过外设地址,调用外设中的数据,程序。 介绍完了硬件部分,才进入我们的程序编写正题。 其实介绍完硬件部分,汇编程序的工作过程也就知道了,汇编的过程,就是CPU工作的过程,只要使用汇编指令描述这个过程就可以了。汇编指令具体看书本。主要讲一讲C语言编写程序。C语言通过编译器将代码翻译成.asm文件,这个文件就是汇编指令(代码分类在一起),通过汇编器生成.obj目标文件,最后通过连接器生成可执行文件,然后固化代码,烧录程序。