《dsp与嵌入式系统》实验报告。
专业:电子工程。
一、实验目的。
1、了解 icetek-vc5416-a板在tms320vc5416dsp在io空间上的扩展。
2、了解 icetek-vc5416-a板上指示灯扩展原理。
3、学习在c 语言中使用扩展的控制寄存器的方法。
二、实验原理。
1、i/o 空间的扩展及使用:
c54x dsp 的 i/o 空间被保留用于外部扩展。由于在程序中访问 i/o 空间的语句只有 in 和out 指令,所以在扩展时一般将带有控制能的寄存器或分离地址访问的存储单元的地址映射到 i/o 空间,访问这部分的单元又称 i/o 端口访问。例如:
可将控制指示灯组的寄存器或锁存器映射到一个 i/o 端口地址上;a/d、d/a 等专用芯片控制端和状态寄存器也常映射到 i/o 端口上。总之,在 i/o 空间中扩展的设备一般重点用于控制,而使用大片连续存储空间的存储器单元一般映射到数据空间。icetek-vc5416-a 板将指示灯、dip 开关、a/d、d/a、异步串行通信接口和 watchdog的控制端等映射在 i/o 空间。
0001-0001h:watchdog 控制寄存器。
3006-3006h:a/d 转换控制寄存器。
1000-1001h:d/a 转换控制寄存器。
2000-2007h:异步串口通信控制寄存器。
3002-3002h: 板上指示灯控制寄存器。
3003-3003h: 板上 dip 拨动开关控制寄存器。
icetek-vc5416-a 实验箱上控制模块也使用 i/o 端口控制大部分设备:
8001-8001h: 读-键盘扫描值,写-液晶控制寄存器。
8002-8002h: 液晶控制寄存器。
8003-8004h: 液晶显示数据寄存器。
8005-8005h: 发光二极管显示阵列控制寄存器。
8006-8006h: 保留。
8007-8007h: 发光二极管显示阵列控制寄存器。
8008-9fffh: 保留。
在程序中,访问 i/o 端口的语句较为简单。对于汇编语言程序,可用 portr 和 portw指令,例如,从端口0008h读入一个字到变量 x 的指令为 portr 8,x,而向端口 000ch 输出x变量的值的指令为 portw #0ch,x;在 c 语言中访问 i/o 端口则必须首先声明 i/o 端口的类型,然后才能访问,以下语句仍完成上面汇编语言所完成的功能:
ioport unsigned int port0008;
ioport unsigned int port000c;
x = port0008;
1.2 指示灯扩展原理。
详见上图,其中 7 个指示灯是 d3-d9;d10 在硬件上没做控制扩展。
1.3 实验程序流程图。
三、实验**。
/ example for icetek-vc5416-edu //
ctr version : v4
/ file name:
/ project :
/ version : 2.00
/ write by: daniel hawk
/ company : realtimedsp
/ all rights opened & no onus 2005.06 //
ioport unsigned int port3002;
#define lbds port3002
void delay(int ndelay);
void shifttoleftandright(unsigned int ninit);
main()
unsigned int uled[4]=;
int i;
for(;;
for ( i=3;i>=0;i--
void delay(int ndelay)
int i,j,k;
k=0;for ( i=0;i for ( j=0;j<1024;j++
k++;四、**分析。
/ 为led声明io端口。
ioport unsigned int port3002;
/ led 宏定义。
#define lbds port3002
/ 延时和移位子函数声明。
void delay(int ndelay延时调用函数申明。
void shifttoleftandright(unsigned int ninit);/移位主函数申明。
main()
unsigned int uled[4]=;控制字,逐位置1: 0001b 0010b 0100b 1000b,分别表示第1,2,3,4盏灯点亮。
int i;
/3位流水灯循环移位。
for(;;
for ( i=3;i>=0;i-- 4盏灯反向流水作业点亮
/这里ndelay=64,延时总长=64*1024*t(t指系统单脉冲周期)
void delay(int ndelay)
int i,j,k;
k=0;for ( i=0;i for ( j=0;j<1024;j++
k++;五、实验结果。
可以看到 d3-d6 这4盏指示灯循环移位闪烁。
通过实验可知:映射在 io 空间地址上的指示灯寄存器在设置时是低有效的,数据的最低位(0001b)对应指示灯 d3,次低位(0010b)对应 d4,..依次类推。
一、实验目的。
1.通过实验熟悉vc5416a 的定时器;
2.掌握vc5416a 定时器的控制方法;
3.掌握vc5416a 的中断结构和对中断的处理流程;
4.学会c 语言中断程序设计,以及运用中断程序控制程序流程。
二、实验原理。
1. 通用定时器介绍及其控制方法。
片内定时器是一个软件可编程定时器,可以用来产生周期的中断信号。
定时器主要由3 个寄存器所组成:定时器寄存器(tim)、定时器周期寄存器(prd)和定时器控制寄存器(tcr)。这3 个寄存器都有映象寄存器,它们在数据存储器中的地址分别为24h、25h 和26h。
tim 是一个递减计数器;prd 中存放计数值;tcr 中有定时器的控制位和状态位:
15—12 保留。
11--10 soft free
9—6 psc 定时器预定标计数器。
5 trb 定时器重新加载位,用来复位片内定时器。
4 tss 定时器停止状态位,用于停止或启动定时器。
3—0 tddr 定时器分频系数。
在正常工作情况下,当tim 减到0 后,prd 中的时间常数自动地加载到tim。复位后,定时器控制寄存器(tcr)的停止状态位tss=0,定时器启动工作,时钟信号clkout加到预定标计数器psc。psc 也是一个递减计数器,每当复位或其减到0 后,自动地将定时器分频系数tddr 加载到psc。
psc 在clkout 作用下,作减1 计数。当psc 减到0,产生一个借位信号,令tim 作减1 计数。tim 减到0 后,产生定时器中断信号tint,传送到cpu 和定时器输出引脚tout。
定时器中断的周期为:clkout×(tddr+1)×(prd+1)
其中,clkout 位时钟周期,tddr 和prd 分别为定时器的分频系数和时间常数。
对定时器初始化的步骤如下:
先将tcr 中的tss 位置1,关闭定时器。
加载prd。
重新加载tcr(使tddr 初始化;令tss 位=0,以接通clkout;trb 位值1,以使tim 减到0 后重新加载定时器时间常数),启动定时器。
对中断的处理:
设置intm=1
将ifr 中的tint 位置1,清除尚未处理完的定时器中断。
将imr 中的tint 位置1,开放定时器中断。
将st1 中的intm 位请0,开放所有可屏蔽中断。
2. tms320vc5416 中断结构。
以下是 5416 的imr 和ifr 寄存器的结构,其中包含了可响应的中断:
int0-3 为外部引脚产生的中断,tint 为定时器中断,rint0-2 和xint0-2 对应mcbsp口的接收和发送中断,hint 对应hpi 接口中断,另外还有dma 中断。
3. 中断响应过程。
嵌入式系统实验报告
嵌入式系统实验报告内容。第一章 arm2410cl嵌入式系统基础实验。实验一arm2410cl嵌入式教学实验系统。实验报告要求 简述嵌入式linux开发的流程。实验二。嵌入式linux开发环境的配置。实验报告要求 1 简述嵌入式linux开发环境配置的具体步骤。2 简述网络文件系统 nfs 第二章 ...
嵌入式系统实验报告
本科实验报告。1.实验原理 本实验使用xmanager enterprise软件来连接老师配置好的linux服务器,以完成实验中使用linux完成编译和 运行一个嵌入式系统。实验中使用u boot作为系统的bootloader,使一个嵌入式linux系统完成编译并模拟在另一台机器上 并执行操作。u ...
嵌入式系统实验报告
姓名 班级 学号 实验一 流水灯。实验要求 编写一个程序,是开发板上的的3个led灯按流水灯方式闪烁。实验工具 超级终端开发板,电脑。实验程序如下 汇编指令实验 定义端口e寄存器预定义。rgpbcon equ 0x56000010 rgpbdat equ 0x56000014 rgpbup equ ...