北理工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指令将整数转换为浮点数,然后开始处方。