C6000汇编语言实现乘法,北理工19年9月《DSP原理及应用》作业考核试题(资料)...

(431)北京理工大学远程教育学院2018-2019第二学期

DSP原理与应用的最终分配

学号、教学站名成果表

C6000实验1:汇编语言、体系结构和ccs

使用模拟器配置文件sim6201_simpulator.cfg

1。创建新项目并添加教程sim62xx hello 1文件以完成其功能。实践ccs的基本操作:加载程序、走主、执行程序、设置断点、分步、观察变量、观察内存、测试函数执行CLK、混合代码显示。

2。打开教程SIM62XX第1卷的项目文件,完成图形观察变量、设置探针、凝胶控制变量、文件IO、动画显示输入和输出的功能。然后加载。ASM是逐步执行的:如何被C代码调用,如何观察寄存器的变化,如何测试函数的执行时间,如何循环和返回C代码。

三。解释如何在C6201中实现32位int乘以32位int。结果是32位int进程:在主函数中设置三个全局变量int a=0x10008;int b=56;int c;执行语句c=a*b;生成后加载执行器,在混合代码中显示c=a*b对应的汇编代码。解释一下。

4。hello1添加了一个c文件sop_c.c,它有一个向量乘法子函数sop(short*a,short*x,int*y,int n),然后在主函数中调用它。未选择优化选项。在装配级执行SOP子功能,观察调用、执行和返回过程。

C6000实验2:C6000管道和C运行环境

使用模拟器配置文件sim6201_simpulator.cfg

1。两个数组的乘法和累加函数是用汇编语言实现的:函数int-sop-asm(short*a,short*x,int n)是在sop-asm中实现的。

2。C调用汇编函数,汇编函数调用C函数:

在主函数中调用程序集函数addarr3,在addarr3中调用C子函数addarr2。

addarr3(int*arr1,int*arr2,int*arr3,int*arr4,int n)是一个汇编函数。它的功能是添加三个数组的相应位置,结果放入arr4[n]。

汇编函数addarr3调用c的子函数,它将arr1和arr2添加到arr3[n]。

addarr2(int*arr1,int*arr2,int*arr3,int n)

C6000实验3:DSP/BIOS

使用模拟器配置文件sim6201_simpulator.cfg

1。在第2卷的基础上,增加一个中断4,并写入中断4的服务功能。每次发生中断时,向计数器添加1。在模拟器中,采用插针连接来模拟中断。

2。在实验1的基础上,增加了优先级为3的任务tsk1。其服务功能采用for()的结构,每3ms执行一次任务。

三。在实验2的基础上,添加一个空闲线程,观察每毫秒空闲线程的功能执行次数。

4。在实验2的基础上,增加了优先级为4的任务tsk2。其服务功能采用for()的结构,每2毫秒执行一次任务,6毫秒、12毫秒、18毫秒…同时,分析了TSK1和TSK2的任务切换过程。

C6000实验4:C6000代码优化

1。使用模拟器配置文件sim6201_simpulator.cfg

编写手动优化。ASM程序:基于卷1负载。ASM,实现16位数组乘法累加功能,以及手动优化和软件流水线优化;

(1)使用ldw和mpy,mpyh指令;对于c64,使用扩展乘法指令。

(2)绘制模块的相关图和迭代区间表

2。使用Simlator配置文件sim6701_simpulator.cfg。

写出线性组合的一个子函数,做复数数组模,找出最大模的位置和值。复数的实部和虚部较短,模的计算结果为无符号整数。

提示:使用intsp指令将整数转换为浮点数,然后开始处方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值