嵌入式实验指导书.docx
- 文档编号:13622324
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:18
- 大小:22.39KB
嵌入式实验指导书.docx
《嵌入式实验指导书.docx》由会员分享,可在线阅读,更多相关《嵌入式实验指导书.docx(18页珍藏版)》请在冰点文库上搜索。
嵌入式实验指导书
实验一
ADS1.2开发环境创建与简要介绍
基于ARM的C语言程序设计简介
实验二
ARM的I/O接口实验
ARM的中断实验
实验三
ARM的UART实验
ARM的A/D接口实验
实验四
键盘接口和七段数码管的控制实验
实验五
LCD的显示实验
μCOSII操作系统演示
实验六
ARM的设计性实验
实验一ADS1.2开发环境创建与简要介绍
基于ARM的C语言程序设计简介
时间:
一、实验目的
1、熟悉ADS1.2开发环境,正确使用仿真调试电缆进行编译、下载、调试;
2、了解嵌入式C语言的基本框架,学会使用嵌入式C语言,并在三星S3C2410芯片上编程练习。
二、实验仪器设备
1、EL-ARM-830教学实验箱,奔腾E系列PC机,仿真调试电缆;
2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。
三、实验原理
ADS是ARM公司的集成开发环境软件,串口线负责三星S3C2410处理器与PC机超级终端之间的通信,H-JTAG软件负责通过并口线探测处理器内核,CodeWarriorforARMDeveloperSuite为代码编辑环境,AXDDebugger通过并口线调试。
四、实验内容
ADS1.2开发环境创建与简要介绍
1、ADS1.2下建立工程
2、ADS1.2下仿真、调试
基于ARM的C语言程序设计简介
1、该实验仅使用实验教学系统的CPU板、串口。
在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接针/孔接头串口线;
3、检查连接是否可靠,可靠后,接入电源线,系统上电;
4、打开ADS1.2开发环境,打开C.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件C.axf;
6、打开PC机的超级终端,配置波特率为1152000,校验位无,数据位为8,停止位为1。
之后,在ADS调试环境下全速运行映像文件,从PC机超级终端输出“55”数据。
五、实验结果讨论
实验主程序如下所示:
#include
#include"..\INC\config.h"
voidMain(void){
unsignedchardata;
Target_Init();
Delay(1000);//延时
data=0x55;//给全局变量赋值
while
(1)
{
Uart_Printf("%x",data);//串口0输出
Delay(1000);
}
}
从实验主程序预测实验结果是在PC机超级终端输出“55”数据,与实验结果相吻合。
实验二ARM的I/O接口实验
ARM的中断实验
时间:
一、实验目的
1、了解三星S3C2410的通用I/O接口;
2、掌握I/O接口功能的复用并对其能够熟练的配置,进行编程实验;
3、了解ARM9的中断原理,能够对三星S3C2410的中断资源及其相关中断寄存器进行合理配置;掌握三星S3C2410中断的编程方法。
二、实验仪器设备
1、EL-ARM-830教学实验箱,奔腾E系列PC机,仿真调试电缆;
2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。
三、实验原理
ARM的I/O接口实验:
三星S3C2410CPU共有117个多功能复用输入输出口,分为8组端口:
4个16位的I/O端口(PORTC、PORTD、PORTE、PORTG)
2个11位的I/O端口(PORTB、PORTH)
1个8位的I/O端口(PORTF)
1个23位的I/O端口(PORTA)
通用的GPI/O接口,是可配置的,PORTA除功能口外,它们仅用作输出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。
ARM的中断实验
在ARM中,有两类中断,一类是IRQ,一类是FIQ,IRQ是普通中断,FIQ是快速中断,在进行大批量的复制、数据转移等工作时,常使用此类中断。
FIQ的优先级高于IRQ。
同时,它们都属于ARM的异常模式,当一旦有中断发生,不管是外部中断,还是内部中断,正在执行的程序都会停下来,PC指针进而跳入异常向量的地址处,若是IRQ中断,则PC指针跳到0x18处,若是FIQ中断,则跳到0x1C处。
异常向量地址处,一般存有中断服务子程序的地址,所以,接下来PC指针跳入中断服务子程序中。
当完成中断服务子程序后,PC指针会返回到被打断的程序的下一条地址处,继续执行程序。
四、实验内容
ARM的I/O接口实验
1、该实验仅使用实验教学系统的CPU板、串口。
在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接针/孔接头串口线;
3、检查连接是否可靠,可靠后,接入电源线,系统上电;
4、打开ADS1.2开发环境,打开IO.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件IO.axf;
6、在ADS调试环境下全速运行映像文件,观察CPU板左下角的LED1、LED2灯轮流地。
ARM的中断实验
1、该实验仅使用实验教学系统的CPU板、串口。
在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接针/孔接头串口线;
3、检查连接是否可靠,可靠后,接入电源线,系统上电;
4、打开ADS1.2开发环境,打开Interrupt.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件Interrupt.axf;
6、在ADS调试环境下全速运行映像文件,观察LED1和LED2,LED1和LED2灯会由于定时中断的1秒发生一次,而一秒钟闪烁一次。
五、实验结果讨论
ARM的I/O接口实验主程序如下:
#include
#include"..\INC\config.h"
voidMain(void){
intflag,i;
Target_Init();
for(;;){
if(flag==0){
for(i=0;i<1000000;i++);//延时
rGPGCON=rGPGCON&0xfff0ffff|0x00050000;
rGPGDAT=rGPGDAT&0xeff|0x200;
for(i=0;i<10000000;i++);//延时
flag=1;
}else{
for(i=0;i<1000000;i++);//延时
rGPGCON=rGPGCON&0xfff0ffff|0x00050000;
rGPGDAT=rGPGDAT&0xdff|0x100;
for(i=0;i<1000000;i++);//延时
flag=0;
}
}
}
从程序分析可知,实验结果应该是两个LED灯交替点亮,与实际实验结果相符合。
ARM的中断实验
该实验的程序流程是,程序启动后,初始化定时器1,设定定时器的中断时间,然后,等待定时器中断,当定时器中断到来时,就会进入定时器中断服务子程序,而中断服务子程序会把LED1和LED2灯熄灭或点亮,从现象中看到LED1和LED2灯忽闪一次,则说明定时器发生了一次中断。
最后,关闭中断请求,等待下一次的中断的到来。
为使CPU响应中断,在中断服务子程序执行之前,必须打开ARM920T的CPSR中的I位,以及相应的中断屏蔽寄存器中的位。
打开相应的中断屏蔽寄存器中的位,是在target.C中的voidTimer1INT_Init(void)函数中,在做了这些准备后,就可以等待中断的到来了。
voidTimer1INT_Init(void)函数如下:
voidTimer1INT_Init(void)//定时器接口使能
{
if((rINTPND&BIT_TIMER1))
{
rSRCPND|=BIT_TIMER1;
}
pISR_TIMER1=(int)Timer1_ISR;
rINTMSK&=~(BIT_TIMER1);//开中断;
}
中断服务程序如下所示:
intflag;
void__irqTimer1_ISR(void)
{
if(flag==0)
{
rGPGDAT=rGPGDAT&0xeff|0x200;
flag=1;
}
else
{
rGPGDAT=rGPGDAT&0xdff|0x100;
flag=0;
}
rSRCPND|=BIT_TIMER1;
rINTPND|=BIT_TIMER1;
}
实验运行的结果与从程序推测的结果一致。
实验三ARM的UART实验
ARM的A/D接口实验
时间:
一、实验目的
1、了解并熟悉UART的概念及其工作原理;
2、掌握三星S3C2410UART相关寄存器的配置;
3、能够用C语言编写三星S3C2410相应的串口程序;
4、学习A/D转换的接口电路;
5、掌握三星S3C2410的A/D转换器相关的寄存器配置方法和编程方法。
二、实验仪器设备
1、EL-ARM-830教学实验箱,奔腾E系列PC机,仿真调试电缆;
2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。
三、实验原理
ARM的UART实验
三星S3C2410的UART单元提供3个独立的异步串行I/O口,都可以运行于中断模式或DMA模式,它最高可支持115200bps的传输速率。
三星S3C2410中每个UART通道包含两个用于接收和发送数据的16位FIFO队列。
三星S3C2410的每个UART都有波特率发生器、数据发送器、数据接收器及控制单元。
内部数据通过并行数据总线到达发送单元后,进入FIFO队列,或不进入FIFO队列,通过发送移相器TXDn引脚发送出去,送出的数据通过一个电压转换芯片将3.3V的TTL/COMS电平转换成EIA电平,送进PC的串口。
数据接收的过程刚好相反,外部串口信号需要先把EIA电平经电压转换芯片把电平转换为3.3V的TTL/COMS电平,然后由RXDn管脚进入接收移相器,经过转换后放到并行数据总线上,由CPU进行处理或直接送到存储器中。
在正确使用三星S3C2410的串口进行数据收发实验前,首先,要配置相关的寄存器组。
ARM的A/D接口实验
三星S3C2410的A/D转换器包含一个8路模拟输入混合器,可以将模拟输入信号转换成10位数字编码。
在A/D装换时钟为205MHz时,其最大转换率为500KSPS,输入电压范围为0—3.3V,A/D转换操作支持片上采样保持功能和掉电模式。
在正确使用三星S3C2410的A/D进行采集实验前,首先要配置相关的寄存器ADCCON、ADCTSC、ADCDAT0等。
四、实验内容
ARM的UART实验
1、该实验仅使用实验教学系统的CPU板、串口。
在进行该实验时LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。
使用交叉连线连接PC机串口1和实验箱CPU的串口,使用直连线连接底板串口2和PC机上的串口2之间的电缆;
3、检查连接是否可靠,可靠后,接入电源线,系统上电;
4、打开ADS1.2开发环境,打开UART.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件UART.axf;
6、打开超级终端0,超级终端1,按波特率115200、8位数据位、1位停止位、无奇偶校验进行设置
6、在ADS调试环境下、全速运行映像文件。
激活超级终端0,敲键盘,观察超级终端0,超级终端1的内容显示。
所敲键盘的字符在两个超级终端上显示出来。
ARM的A/D接口实验
1、该实验使用实验教学系统的CPU板、串口、A/D通道选择开关、LCD单元。
在进行该实验时音频的左右声道开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。
以及串口间连接针/孔接头串口线,使用交叉线连接PC机串口1和实验箱CPU的串口,使用直连线连接底板串口2和PC机上的串口2之间的电缆;
3、检查连接是否可靠,可靠后,接入电源线,系统上电。
拨码开关SW3为选中的A/D转换的通道,因该实验程序使用通道1采集,所以,SW3的1应该拨到ON状态。
要给ADIN一个输入信号,我们采用底板上的SQUARE信号,也可以是外部信号。
接外部电压信号时,要共地,以及信号的电压范围为0—2.5V。
4、打开ADS1.2开发环境,打开AD.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件AD.axf;
6、在ADS调试环境下、全速运行映像文件。
打开LCD电源开关,观察LCD上1通道当前采集的情况。
五、实验结果讨论
ARM的UART实验
该实验是把键盘敲击的字符通过PC机的串口发送给实验箱上的ARM的CPU板的串口0,ARM的CPU板上的串口得到字符后,通过ARM把它送给CPU板上的串口0输出给PC,以及通过底板上的串口1,送给PC机,这样,就完成了串口间的收发数据。
ARM的A/D接口实验
shortGet_AD(unsignedcharch)
{inti;
intval=0;
if(ch>7)return0;
for(i=0;i<1;i++)
{rADCCON|=0x1;//启动A/D转换
rADCCON=rADCCON&0xffc7|(ch<<3);
//rADCCON=rADCCON&0x1111111111000111|(ch<<3);
while(rADCCON&0x1);//避免第一个标志出错
while(!
(rADCCON&0x8000));//避免第二个标志出错
val+=(rADCDAT0&0x03ff);
Delay(10);
}
return(val);
}
通过实验认识到该函数的功能是“得到AD的转换值”,并且学习到了A/D转换器相关寄存器的配置方法和使用方法。
实验四键盘接口和七段数码管的控制实验
时间:
2009.11.2
一、实验目的
1、学习4×4键盘与三星S3C2410的接口电路;
2、学习并熟悉键盘芯片HD7279的使用及8位数码管的显示方法。
二、实验仪器设备
1、EL-ARM-830教学实验箱,奔腾E系列PC机,仿真调试电缆;
2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。
三、实验原理
键盘和7段数码管的控制实验,是通过键盘的控制芯片HD7279A来完成的。
它的信号线及控制线连接到三星S3C2410上,驱动线直接连到8位共阴的7段数码管上。
由于其芯片的接口电压是5V,而三星S3C2410的接口电压是3.3V,所以,HD7279A的信号、控制线须经过电压转换到3.3V,然后才能送入CPU,通过查阅实验箱的资料了解到,HD7279A的信号、控制线是经过CPLD把电压转换到3.3V的。
HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。
四、实验内容
键盘接口和七段数码管的控制实验
1、该实验使用实验教学系统的CPU板、键盘、8位数码管。
在进行该实验时A/D通道选择开关、LCD电源开关、音频的左右声道开关、触摸屏中断选择开关等均应处在关闭状态;
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。
3、检查连接是否可靠,可靠后,接入电源线,系统上电;
4、打开ADS1.2开发环境,打开Key_Led.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件Key_Led.axf;
6、在ADS调试环境下、全速运行映像文件,按下任意键值,观察数码管的显示。
五、实验结果讨论
实验的验证结果如下:
“0”键表示数码管测试,8个数码管闪烁;
“4”键表示数码管复位;
“1”键表示数码管右移8位;
“2”键表示数码管循环右移;
“9”键表示数码管左移8位;
“A”键表示数码管循环左移;
其他键在最后两个数码管上显示键值。
实验五LCD的显示实验
μCOSII操作系统演示
时间:
一、实验目的
1、学习LCD与三星S3C2410的LCD控制器的接口电路;
2、掌握内置LCD控制器驱动编写方法;
3、学习调用简单的GUI绘图;
4、了解把嵌入式操作系统μCOS-II移植到三星S3C2410处理器上的基本步骤和方法;
5、学习简单的μCOS-II嵌入式操作系统下任务的建立与管理。
二、实验仪器设备
1、EL-ARM-830教学实验箱,奔腾E系列PC机,仿真调试电缆;
2、PC操作系统WINXP,ADS1.2集成开发环境,仿真调试电缆驱动程序。
三、实验原理
LCD的显示实验
三星S3C2410中具有内置的LCD控制器,他能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。
他支持单色、4级、16级灰度LCD显示,以及8位彩色、12彩色LCD显示。
在显示灰度时,它采用时间抖动算法和帧率控制方法,在显示彩色时,它采用RGB的格式。
通过软件编程可以实现332的RGB调色的格式。
对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD控制器中的相应寄存器写入不同的值,来配置不同的LCD显示板。
三星S3C2410中内置的LCD控制器提供了下列外部接口信号:
VFRAME:
LCD控制器和LCD驱动器之间的帧同步信号;
VLINE:
LCD控制器和LCD驱动器间的同步脉冲信号;
VCLK:
LCD控制器和LCD驱动器之间的象素时钟信号;
VM:
LCD驱动器所使用的交流信号;
LCD_PWREN:
LCD面板电源使能控制信号;
VD[23:
0]:
LCD象素数据输出接口。
μCOS-II操作系统演示
要把μCOS-II移植到ARM920T处理器上,必须写三个文件,这三个文件都是与处理器的架构紧密相关的,它们是OS_CPU.h、OS_CPU_A.s、OS_CPU_C.c。
它们的作用是把μCOSII操作系统紧紧的附着在ARM处理器上,实现软件与硬件的协同。
通常OS_CPU.h文件中主要包括:
a)把编译器类型数据重定义为μCOS-II内核所用的数据类型;
b)编写相应ADS或ADS编译器的开关中断的函数;
c)定义单个堆栈的数据宽度;
d)定义微处理器的堆栈的增长方向。
在文件OS_CPU_C.c中主要包括10个函数,其中一个是任务堆栈初始化函数,其它九个为操作系统扩展的钩子函数。
在OSTaskCreate()和OSTaskCreateExt()中,通过调用任务堆栈初始化函数OSTaskStkInit()来初始化任务的堆栈结构,初始完毕后,堆栈看起来就像刚发生过中断并将所有的寄存器内容保存到该任务堆栈中的情形一样。
文件OS_CPU_A.s中主要包括5个函数:
voidOSStartHighRdy启动最高优先级任务
voidOSIntCtxSw中断中的任务切换
voidOSCtxSw任务切换
voidOSCPUSaveSR保存中断前的寄存器状态
voidOSCPURestoreSR中断完成后,恢复中断前的状态
当μCOS-II初始化完毕后,它要寻找最高优先级的任务,找到后跳到最高优先级任务中执行。
通过运行提供的移植代码来体现一下移植后操作系统简单的工作,提供了一个多任务应用程序,即:
一个熄灭LED1、LED2灯的任务,一个点亮LED1、熄灭LED2的任务,一个熄灭LED1、点亮LED2灯的任务,三个任务轮流输出。
该程序存放在plant.mcp项目中。
四、实验内容
LCD的显示实验
1、该实验使用实验教学系统的CPU板、LCD单元。
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。
3、检查连接是否可靠,可靠后,接入电源线,系统上电,打开LCD的电源开关。
4、打开ADS1.2开发环境,打开Lcd.mcp项目文件,进行编译;
5、编译通过后,进入ADS1.2调试界面,加载映像文件Lcd.axf;
6、在ADS调试环境下、全速运行映像文件到主函数Main(),然后单步运行,观察液晶屏的显示效果,重复实验。
7、实验完毕,先关闭LCD电源开关,再关闭ADS开发环境,再关闭电源。
μCOSII操作系统演示
1、本实验使用实验教学系统的CPU板。
2、在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。
3、检查连接是否可靠,可靠后,接入电源线,系统上电。
4、打开ADS1.2开发环境,打开uart_UCOSII目录下的项目文件uart.mcp,进行编译。
5、编译通过后,进入ADS1.2调试界面,通过仿真调试电缆把程序下载到SDRAM里运行,观察实验现象。
6、实验完毕,关闭ADS开发环境,再关闭电源。
五、实验结果讨论
1、LCD端口初始化函数如下:
voidLcd_Port_Init(void)
{
save_rGPCCON=rGPCCON;
save_rGPCDAT=rGPCDAT;
save_rGPCUP=rGPCUP;
save_rGPDCON=rGPDCON;
save_rGPDDAT=rGPDDAT;
save_rGPDUP=rGPDUP;
rGPCUP=0xffffffff;//DisablePull-upregister
rGPCCON=0xaaaaaaaa;//InitializeVD[7:
0],LCDVF[2:
0],VM,VFRAME,VLINE,VCLK,LEND
rGPDUP=0xffffffff;//DisablePull-upregister
rGPDCON=0xaaaaaaaa;//InitializeVD[23:
8]
//Uart_Printf("InitializingGPIOports..........\n");
}
2、UCOSII建立任务函数如下:
/*
*****************************************************************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验 指导书