专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
求助关于TMS320C6455编程
2019-03-26 14:38
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
DSP
10127
2
1338
近期要对DSP6455的通用寄存器和各个外设编写测试程序,由于刚入门不久,非常迷茫。想实现如下的GPR测试,不知道如何下手,请大侠帮忙!
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
BasaraTama
1楼-- · 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步。
加载中...
Aguilera
2楼-- · 2019-03-26 23:15
< 堆栈使能了,但并没有进行正确设置
加载中...
一周热门
更多
>
相关问题
相关文章
事件管理器――PWM
0个评论
FPGA时序分析基础(二):vivado中常用的时序约束命令
0个评论
LDO和BUCK降压稳压器对比
0个评论
伺服控制系统教学实验平台
0个评论
asoc之动态PCM
0个评论
ADS7928
0个评论
基于AD9957实现射频数字化变频模块和AD转换模块的方案详细教程
0个评论
多功能车载DVD智能导航平台
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
设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步。
一周热门 更多>