北京理工大学2020年5月《DSP原理及应用》期末大作业
(431)北京理工大学远程教育学院20192020年第二学期《DSP原理及应用》期末大作业
北京理工大学
作业请联系QQ515224986
教学站学号姓名成绩
C6000实验1:汇编语言、体系结构和CCS
采用simulator配置文件sim6201_simulator.cfg
򖒓.新建一个project,把tutorial\sim62xx\hello1的文件添加进去,完成其功能。练习CCS的基本操作:加载程序、gomain、执行程序、设置断点、单步执行、观察变量、观察存储器、测试函数执行的CLK、混合代码显示。
򖒔.打开tutorial\sim62xx\volume1的项目文件,完成图形方式观察变量、设置探点、GEL控制变量、FILEIO、动画显示输入输出的功能。然后单步执行load.asm:如何被C代码代码调用、观察寄存器的变化、测试函数执行时间、如何循环和返回C代码。
򖒕.解释如何在C6201上实现32bitint乘32bitint结果是32bitint的过程:在刚才的hello1中设置3个全局变量inta=0x10008intb=56intc在main函数中执行语句c=a*bbuild后加载执行程序混合代码显示c=a*b对应的汇编代码,解释之。
򖒖.Hello1中添加1个C文件sop_c.c,其中有一个矢量乘的子函数sop(short*ashort*xint*yintn),然后在main函数中调用。不选择任何优化选项。用混合代码显示,在汇编层次执行sop子函数,观察调用、执行和返回的过程。
C6000实验2:C6000流水线和C运行时环境 奥鹏北理工作业请联系QQ515224986
采用simulator配置文件sim6201_simulator.cfg
򖒓.用汇编语言实现两个数组的乘法累加功能:sop_asm.asm中实现函数intsop_asm(short*ashort*xintn);然后,手工优化汇编代码;
򖒔.C调用汇编函数,汇编函数调用c函数:
在main函数中调用汇编实现的函数addarr3在addarr3中调用C子函数addarr2.
addarr3(int*arr1int*arr2int*arr3int*arr4intn)是汇编函数,其功能为3个数组的对应位置相加,结果放在arr4中;
汇编函数addarr3中调用C的子函数,它把arr1和arr2相加放到arr3中;
addarr2(int*arr1int*arr2int*arr3intn)
C6000实验3:DSP/BIOS
采用simulator配置文件sim6201_simulator.cfg
1.在volume2的基础上添加一个中断4,并写中断4的服务函数,每发生一次中断把计数器加1。simulator中,利用pinconnect仿真中断;
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和MPYMPYH指令;对于C64可以使用扩展乘法指令。
(2)画出相关图和模迭代间隔表
2.采用simulator配置文件sim6701_simulator.cfg.
写一个线形汇编实现的子函数,做复数数组求模,并找出模的最大值的位置和值。复数的实部和虚部为short,求模的结果为unsignedint;
提示:使用INTSP指令把整数转化为浮点数后再开方;
北京理工大学
奥鹏作业请联系QQ515224986
页:
[1]