求助关于TMS320C6455编程

2019-03-26 14:38发布

近期要对DSP6455的通用寄存器和各个外设编写测试程序,由于刚入门不久,非常迷茫。想实现如下的GPR测试,不知道如何下手,请大侠帮忙!

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
BasaraTama
2019-03-26 21:01
< 本帖最后由 BasaraTama 于 2018-11-6 23:59 编辑

设r*代表GPR,GPR位宽32bit,SP是专门用于保存地址的寄存器;0x55555555和0x2都从内存中获取,而不是由立即数构造。
汇编伪代码:
.macro GPR_NUMBER 32   //定义GPR个数
for(i=0;i<GPR_NUMBER;i++){
store 0x55555555,[SP]   ##将0x55555555写入地址为SP的内存空间。由于指令编码长度有限,所以有可能无法在store指令
                                   ##中使用大数0x55555555,此时可以采用其他指令分步完成0x55555555的构造。
                                   ##比如:
                                   ##mov ri,0x5555  ##将立即数0x5555写入ri
                                   ##lift_shift ri,0xf  ##左移16bit                                   ##addi ri,0x5555  ##ri加0x5555,结果回写入ri,这样就得到了值为0x55555555的ri
load ri,[SP]                   ##从地址SP指向的内存空间取32bit数到ri,即ri=0x55555555
load r"i+1" ,[SP+4]       ##从地址SP+4指向的内存空间取32bit数到r"i+1",即r"i+1"=0x2
mul ri,r"i+1"                  ##ri乘以r"i+1"
}

以上夹杂c/asm的伪代码,实现了图中的1到4步。

一周热门 更多>