DSP中C及汇编的混合编程的实现.doc
文本预览下载声明
重庆大学研究生专业实验教学
实验报告书
实验课程名称: DSP技术专业实验 实验指导教师: 曾浩老师 学 院: 通信工程学院 专业及类别: 电子与通信工程 学 号: 20131213087 姓 名: 叶俊 实验日期: 2014年6月15、16日 成 绩:
重庆大学研究生院实验一 CCS基本使用
实验目的
理解DSP的过程。
掌握一个DSP软件开发流程。
掌握汇编的书写规范,学会汇编指令的运用。
掌握编译器和链接器的使用,能够合理了分配存储空间。
学习定点数的运算方法。
学会CCS的各种调试技巧,如:CPU寄存器、数据和程序存储器的观察、断点的设置,反汇编窗口的使用。
实验仪器设备
计算机一台、CCS3.3
实验原理
软件开发流程。
要正常启动软件并使它能够在DSP上面正常运行,需要用户完成以下的流程:
在用户的工程里面,必须包含至少两个文件。
两个文件编辑完成以后,可调用编译、汇编和链接命令。
通过CCS的加载功能,把.OUT文件加载到DSP内部,其地址由链接文件规定。
汇编源文件书写。
在CCS中,新建一个文件,在这个文件中,如果使用汇编语言,那就命名时使用ASM的后缀名,如果使用C语言,那命名时就使用C的后缀名。同时应该把文件加载到相应的工程当中去。
启动方式。
我们采用通过CCS从JTAG直接加载的方式。
CCS的调试工具。
在本次实验中,CCS的调试工具将要使用到一些基本的操作。主要包括如何观察CPU的各个寄存器,如何观察数据区和程序区的数据;单步执行的方法和断点执行。
实验内容
在用户的工程里面,编写程序指令的源文件和链接文件,在CCS中将这两个文件编译,转化成COFF格式的文件,生成.OUT的文件。通过CCS的加载功能,对程序进行调试。
用.set定义四个立即数。
在.bss段建立几个存储空间。
把立即数相加和相乘,结果放在.bss分配的存储空间。
合理分配各个段的存储地址,并使用CCS观察。
实验数据
1、程序空间的内容:
2、数据空间的内容:
3、CPU寄存器中PC指针如下图所示:
4、反汇编窗口如下图所示:
5、设置断点反汇编窗口如图:
数据处理及结果分析
通过对程序的调试,可以查看不同地址空间和相关寄存器的内容,了解程序运行的方式。
实验小结
通曾老师首先介绍了DSP、FPGA、ARM嵌入式等对比及其现在流行的DSP及其发展和各自系列的现状及优缺点,让我们我们对此有了一个清晰地认识,对于以后学习大有帮助。本实验我掌握了DSP软件开发的基本流程,并且对CCS有个大概的了解。学会了CCS的调试技巧,可以熟练的查看地址空间数据,设置断点等操作。曾老师逐个认真检查实验结果的教学方法确实让我们真正的学习到了知识,值得提倡,特此感谢!
实验二 C和ASSEMBLY的混合编程
实验目的
掌握C语言编写源文件的方法。
掌握中断矢量表的使用。
掌握定时器中断的使用方法。
学会C和汇编的混合编程。
实验仪器设备
计算机一台、CCS软件
实验原理
数字振荡器原理
设传递函数为正弦序列sin kwT,其Z变换为:
其中,即:
设初始条件为0,求出上式的反z变换得:
这是一个二阶差分方程,其单位冲击响应为sin kwT。利用单位冲击函数性质知道,仅当k=1的时候,为1,其他情况都为0。当输入为单位冲击时,输出就是我们需要的正弦序列。
根据上面的说明,设振荡器频率为2KHz,采样频率为20KHz,定时器每隔50us产生一次中断,得到一个。递归的差分方差系数为:
定时器使用
定时器是一个片内递减计数定时器,可以产生周期的CPU中断,每隔CPU时钟周期,定时器的计数值减1。当定时器计数器的值减为0时,产生一个定时器中断TINT。对于5000系列DSP中,5402和5420有两个定时器,其他型号DSP只有一个。用户使用三个寄存器来控制定时器,他们是TIM,PRD,TCR。
C和汇编语言混合编程
C和汇编是编辑源文件的两种基本语言,各自有各自的优点和缺点。对于C语言,他的优点在于编辑方便,缺点是效率不高;汇编语言的编程效率很高,但是使用起来又不是很方便。通常混合使用,利用各自的优点,避免缺点。主程序我们采用C语言,而关键代码,特别是一些占用CPU较多的代码,我们使用汇编语言来编辑。
CCS图形观察窗口
图形观察窗口的作用是把数据区和程序区的某一块连续存储区域数据,用笛卡尔坐标系的纵坐标表示,横坐标则是地址的归一化值,我们在使这些数据变换的程序代码处设置断点运行程序使用动画执行,那么,程序运行到断点处不会停止,只会更新显示区域。这样我们就可以观察到一个动态的显示效果
实验内容
设计一个数字振荡器的实现算法
显示全部