欢迎光临
我们一直在努力

北京理工大学2020年5月《DSP原理及应用》作业考核试题【参考答案】

可做奥鹏国开全部院校作业论文!答案请添加qq:599792888 或 微信:1095258436

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

《DSP原理及应用》期末大作业

 

教学站         学号             姓名              成绩

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

采用simulator配置文件sim6201_simulator.cfg

1. 新建一个project,把tutorial\sim62xx\hello1的文件添加进去,完成其功能。练习CCS的基本操作:加载程序、go main、执行程序、设置断点、单步执行、观察变量、观察存储器、测试函数执行的CLK、混合代码显示。

2. 打开tutorial\sim62xx\volume1的项目文件,完成图形方式观察变量、设置探点、GEL控制变量、FILE IO、动画显示输入输出的功能。然后单步执行load.asm:如何被C代码代码调用、观察寄存器的变化、测试函数执行时间、如何循环和返回C代码。

3. 解释如何在C6201上实现32bit int乘32bit int, 结果是32 bit int的过程:在刚才的hello1中设置3个全局变量int a = 0x10008; int b = 56; int c;在main函数中执行语句 c = a * b;  build后加载执行程序, 混合代码显示 c = a*b对应的汇编代码,解释之。

4. Hello1中添加1个C文件sop_c.c ,其中有一个矢量乘的子函数sop(short * a, short * x, int * y, int n),然后在main函数中调用。不选择任何优化选项。用混合代码显示,在汇编层次执行sop子函数,观察调用、执行和返回的过程。

 

C6000实验2:C6000流水线和C运行时环境

采用simulator配置文件sim6201_simulator.cfg

1. 用汇编语言实现两个数组的乘法累加功能: sop_asm.asm中实现函数int sop_asm(short * a, short * x, int n);然后,手工优化汇编代码;

2. C调用汇编函数,汇编函数调用c函数:

在main函数中调用汇编实现的函数addarr3, 在addarr3中调用C子函数addarr2.

addarr3(int * arr1, int * arr2, int * arr3, int * arr4, int n) 是汇编函数,其功能为3个数组的对应位置相加,结果放在arr4[n]中;

汇编函数addarr3中调用C的子函数,它把arr1和arr2相加放到arr3[n]中;

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

 

C6000实验3:DSP/BIOS

采用simulator配置文件sim6201_simulator.cfg

1. 在volume2的基础上添加一个中断4,并写中断4的服务函数,每发生一次中断把计数器加1。simulator 中,利用pin connect仿真中断;

2. 在实验1的基础上添加一个任务TSK1,优先级为3,其服务函数采用for(){}的结构,该任务每3ms执行一次。

3. 在实验2的基础上添加一个idle线程,观察idle线程的函数每ms执行多少次;

4. 在实验2的基础上添加一个任务TSK2,优先级为4,其服务函数采用for(){}的结构,该任务每2ms执行一次。在第6ms、12ms、18ms….等时刻时,分析TSK1和TSK2的任务切换过程。

 

C6000实验4:C6000代码优化

1. 采用simulator配置文件sim6201_simulator.cfg

写手工优化的.asm程序:在volume1的load.asm基础上实现16bit数组的乘法累加的函数,并手工优化和采用软件流水优化;要求:

(1)使用LDW和MPY,MPYH指令;对于C64可以使用扩展乘法指令。

(2)画出相关图和模迭代间隔表

2. 采用simulator配置文件sim6701_simulator.cfg .

写一个线形汇编实现的子函数,做复数数组求模,并找出模的最大值的位置和值。复数的实部和虚部为short,求模的结果为unsigned int;

提示:使用INTSP指令把整数转化为浮点数后再开方;

赞(0)
未经允许不得转载:奥鹏作业网 » 北京理工大学2020年5月《DSP原理及应用》作业考核试题【参考答案】

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址