DSP的C语言实验指导书(上)

上传人:ni****g 文档编号:491048976 上传时间:2023-09-19 格式:DOC 页数:24 大小:8.17MB
返回 下载 相关 举报
DSP的C语言实验指导书(上)_第1页
第1页 / 共24页
DSP的C语言实验指导书(上)_第2页
第2页 / 共24页
DSP的C语言实验指导书(上)_第3页
第3页 / 共24页
DSP的C语言实验指导书(上)_第4页
第4页 / 共24页
DSP的C语言实验指导书(上)_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《DSP的C语言实验指导书(上)》由会员分享,可在线阅读,更多相关《DSP的C语言实验指导书(上)(24页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计实验实验一 HelloWorld实验一 试验目的1熟悉ARM/DSP/FPGA实验箱2熟悉整个DSP软件开发流程3熟悉如何使用DSP的USB仿真器配合CCS软件进行DSP开发二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是个入门实验,主要是为了让用户了解如何利用本实验系统配合DSP软件以及DSP的USB仿真器来完成代码的开发、下载和验证。在本实验中,首先利用CCS软件创建工程,并加入相应的DSP相关文件,然后对其进行编译、下载、调试以及结果验证等。在进行代码开发之前,首先对本系统中的DSP模块作一些简要介绍。本系统

2、中的DSP采用了TI的TMS320C5410A,该芯片可以稳定工作在160MHz主频;内部具有128KB片内RAM和32KB片内ROM;该芯片内部包含有一个16位定时器,1个6 通道DMA控制器,3个McBSP串行口和1个增强型HPI控制器。对于本实验系统上的DSP模块,板上提供了512KB的Flash ROM,用于存放用户代码。令外由于该DSP内部已经拥有很大的片内RAM,所以本模块没有外扩SRAM。DSP模块的数据和地址总线、I/O相关控制总线均与FPGA相连接,另外对于McBSP0和McBSP1也连接到了FPGA,这些都为DSP通过FPGA控制板上资源创造了非常灵活的条件。由于板上没有扩

3、展外部SRAM,所以在程序设计的时候需要把可执行代码区、数据区以及中断向量表等全部放到DSP的SRAM中,考虑到DSP中还有一些存储器映射的寄存器,所以以上的代码必须放在DSP中的0x00800x7FFF之间。具体的分配可以参考本实验的C54xx.cmd文件。 前面已提到,本实验是一个入门实验,旨在让学生了解整个DSP的开发流程,所以本实验中将不对程序中的代码以及实现过程作过多的说明,后续的实验将会告诉用户如何配置内部的寄存器以及如何正确的操作DSP的片内外设。四 实验步骤1将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。2系统上电后,将USB仿真器的USB连接线插入到计算器

4、的USB接口。3双击桌面上的CCS(C5000)图标(也可以按照图4.1.1所示的方式打开),开打CCS软件。图4.1.1 从开始菜单打开CCS软件 4在CCS中创建一个工程HelloWorld,如图4.1.2所示。图4.1.2 创建HelloWorld工程5将实验系统配套光盘上实验例程中DS文件夹下面的实验一(Exp1)中的HelloWorld.c、C54xx.h、vectors.asm、rts.lib以及C54xx.cmd文件全部拷贝到刚刚创建的工程文件夹下面。6将步骤5中拷贝的文件全部加入到当前工程HelloWorld中如图4.1.3,点击【打开】即可。加入文件后的工程如图4.1.4所示

5、。图4.1.3 添加文件到当前工程图4.1.4 添加了文件的工程界面 7双击c54xx.cmd文件,可以看到如下文件内容:MEMORY PAGE 0: EPROG: origin = 0x4000, len = 0x3f80 VECT: origin = 0x7f80, len = 0x80 PAGE 1: SYSREGS: origin = 0x00, len = 0x60 BIOSREGS: origin = 0x60, len = 0x20 IDATA: origin = 0x80, len = 0x3f00 EDATA: origin = 0x8000, len = 0x8000SEC

6、TIONS .vectors: VECT PAGE 0 .sysregs: BIOSREGS PAGE 1 .text: PAGE 0 .cinit: EPROG PAGE 0 .bss: IDATA PAGE 1 .const: IDATA PAGE 1 .switch: IDATA PAGE 1 .sysmem: IDATA PAGE 1 .stack: IDATA PAGE 1从cmd文件的内容中可以看到,中断向量表(.vectors)放在PAGE 0的VECT段,也就是0x7F800x7FFF;系统存储器映射寄存器(.sysregs)放在PAGE 1的BIOSREGS段,即0x000x

7、60的位置;可执行代码(.text)放在PAGE 0的EPROG段,即0x40000x7F7F这些内容就是告诉编译器将源文件中的资源按照cmd文件制定的方式存放。8vectors.asm中存放的是中断入口地址,如果程序中涉及到中断,就需要在vectors.asm中相应的地址放置跳转指令,跳转到相应的中断服务子程序便可。9HelloWorld.c即使本工程中的主文件,该文件中有本实验的功能实现代码,所有的用户要实现的功能都可以写在该文件中。当然对于比较复杂的工程,可以写多个.c或.s文件,只需要将其包含到同一个工程中即可。从本实验的HelloWorld.c中可以看出,本实验仅仅实现一个简单的pr

8、intf打印功能,打印信息会在stdout窗口显示出来。 10将整个文件之间的关系和本实验要实现的功能理清楚后,即可对本工程进行编译,编译结果如图4.1.5所示。图4.1.5 工程编译结果 11点击File下面的Load Program,选择本工程目录下Debug文件夹下面的HelloWorld.out文件(如图4.1.6所示),点击【打开】,即可将该工程编译后的可执行文件下载到DSP内部的SRAM中。图4.1.6 打开本工程编译的DSP执行代码(.out文件) 12点击“执行”,便可启动DSP执行本工程编译的代码,执行结果如图4.1.7所示。图4.1.7 实验运行结果思考题:n 1.一个C工

9、程中通常包括那几个文件,这些文件在工程中分别起着什么功能?n 2.中断向量表起什么功能的?n 3.如何改变CCS中的output窗口中的输出内容?让其输出自己名字的全拼。能不能输出中文?如何让输出的数字递减?n 4.如何改变输出频率?实验二 GPIO实验一 试验目的1熟悉ARM/DSP/FPGA实验箱的DSP模块2熟悉整个DSP的GPIO的使用3进一步掌握如何使用DSP的USB仿真器配合CCS软件进行DSP开发二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上了解DSP开发流程的基础上,进一步熟悉使用DSP内部的外设资

10、源,控制实验系统的LED、按键和拨挡开关,从而更加直观的让学生体会DSP的工组流程。本实验中采用DSP的McBSP0和McBSP1两个接口的引脚来作为GPIO,部分用来作为按键和拨挡开关的输入,另外一部分作为LED的输出驱动LED显示。DSP的McBSP接口和HPI的数据接口均可以作为GPIO来使用。当下面的条件满足的时候,McBSP接口即可工作在GPIO模式:1)相关的串行端口均处于复位状态,即将SPCR1n和SPCR2n(n代表串口号,即0、1和2)中的RRST位和XRST位清0。具体内容见表4.2.1和表4.2.2。2)使能相关端口位通用I/O,即将PCRn中的RIOEN位和XIOEN位

11、置1。具体内容见表4.2.3。表4.2.1 SPCR1寄存器图4.2.2 SPCR2寄存器表4.2.3 PCR寄存器 在引脚控制寄存器(PCR)中,可以把McBSP的引脚配置为输入或者输出(除某些只能作为输入或输出的引脚外)。表4.2.4列出了具体的引脚功能与寄存器相关位的关系。表4.2.4 McBSP引脚功能与寄存器关系表从表4.2.4中可以看出,对于FSX引脚而言,如果将FSXM位清零,即可将该引脚配置为输入;如果将FSXM置1,即可将其配置为输出。当该引脚被配置为输出的时候,它输出的电平将由PCRn寄存器中FSXP的值来决定;当该引脚配置为输入的时候,FSXP就会变成一个只读位,该位存储

12、的即使FSX输入的信号电平。需要注意的是,McBSP接口中的DX引脚只能被作为输出端口使用,而DR引脚只能被作为输入引脚使用。在本实验中,首先写FPGA控制字,将拨挡开关的K1K3和按键的S1S3映射到DSP的McBSP口的输入,将LED的D1D3、D5D7映射到McBSP口的输出,在DSP程序中读取按键和拨挡开关的状态,然后用LED显示其当前状态。具体的对应关系见表4.2.5。输 入输 出K1DR0D1DX0K2FSR0D2FSX0K3CLKR0D3CLKX0S1DR1D5DX1S2FSR1D6FSX1 S3CLKR1D7CLKX1表4.2.5 资源对应表 另外说明一点,由于实验系统中的资源

13、模块全部与FPGA直接连接,ARM和DSP在使用板上资源之前必须先写FPGA的命令字,以便将板上资源映射到ARM或DSP相应的功能引脚上。四 实验步骤1将实验箱配套光盘上的DSP实验中的实验二(Exp2)拷贝到计算机硬盘上。2将DSP的USB仿真器连接到实验系统的DSP模块上的JTAG接口。3系统上电后,将USB仿真器的USB连接线插入到计算器的USB接口。4打开CCS软件,并打开刚刚拷贝的Exp2文件夹下面的GPIO工程。5查看本实验中的相关代码,查看如何正确的将McBSP接口配置为GPIO口。6对代码整体结构和流程清楚后,编译代码。7编译通过后,下载代码到DSP。8查看代码执行结果是否正确

14、(正确的实验结果是:拨动K1K3,相应的D1D3会体现出它的状态;按下S1S3,相应的D5D7会体现出它的状态)。思考题:n 1.一个键控制6个灯。n 2.编写楼道灯。实验三 中断设计实验一 试验目的1熟悉ARM/DSP/FPGA实验箱的DSP模块2熟悉DSP的中断的原理3掌握如何编写DSP中断服务子程序二 实验设备1具有USB接口的PC机一台2USB仿真器一台3ARM/DSP/FPGA实验箱一台三 实验原理本实验是在学生基本上了解DSP的GPIO使用的基础上,进一步学习如何在DSP内部实现中断服务程序的编写。在TMS320VC5410A的DSP中,可以管理多达29个中断,其中包括1个非屏蔽中断(NMI)、14个软件中断(SINT)、4个外部中断(EINT)、1个定时器中断(TINT)、3个串口接收中断(RINT)、3个串口发送中断(XINT)、2个DMA中断(DMAC)以及1个主机接口中断(HINT)等,表4.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号