嵌入式实验指导使用版.docx

上传人:b****5 文档编号:28199609 上传时间:2023-07-09 格式:DOCX 页数:38 大小:456.42KB
下载 相关 举报
嵌入式实验指导使用版.docx_第1页
第1页 / 共38页
嵌入式实验指导使用版.docx_第2页
第2页 / 共38页
嵌入式实验指导使用版.docx_第3页
第3页 / 共38页
嵌入式实验指导使用版.docx_第4页
第4页 / 共38页
嵌入式实验指导使用版.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

嵌入式实验指导使用版.docx

《嵌入式实验指导使用版.docx》由会员分享,可在线阅读,更多相关《嵌入式实验指导使用版.docx(38页珍藏版)》请在冰豆网上搜索。

嵌入式实验指导使用版.docx

嵌入式实验指导使用版

实验一基本接口实验

(一)

[实验目的]

1.掌握ARM的串行口工作原理

2.学习编程实现ARM的UART通讯

3.掌握S3C2410寄存器配置方法

4.中断的作用

5.掌握嵌入式系统中断的处理流程

6.掌握ARM中断了解编程

[预备知识]

1.了解ADT集成开发环境的基本功能

2.学习串口通讯的基本知识

3.熟悉S3C2410串口有关的寄存器

[试验设备]

1.JXARM9-2410教学实验箱

2.ADT1000仿真器和ADTIDE集成开发环境

3.串口连接线

[试验内容一]

实现查询方式串口的收发功能。

接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端

[基础知识]

串行通信接口电路组成

1.可编程的串行接口芯片

2.波特率发生器

3.EIA与TTL电平转换器

4.地址译码电路

通信协议:

1.异步协议

2.同步协议

异步串行通讯

异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。

数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。

接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。

为了恢复发送的信息,双方必须协调工作。

在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。

但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。

异步串行通信中的字符传送格式

 

❑开始前,线路处于空闲状态,送出连续“1”。

传送开始时首先发一个“0”

作为起始位,然后出现在通信线上的是字符的二进制编码数据。

每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。

后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。

也可以约定不要奇偶校验,这样就取消奇偶校验位。

最后是表示停止位的“1”信号,这个停止位可以约定持续1位、1.5位或2位的时间宽度。

至此一个字符传送完毕,线路又进入空闲,持续为“1”。

经过一段随机的时间后,下一个字符开始传送才又发出起始位。

每一个数据位的宽度等于传送波特率的倒数。

微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600等。

DB-25DB-9引脚定义

DB-25DB-9引脚说明

RS-232C接口通信的两种基本连接方式

信号电平规定

1.EIA电平:

双极性信号逻辑电平,它是一套负逻辑定义

2.-3V到-25V之间的电平表示逻辑“1”

3.+3V到+25V之间的电平表示逻辑“0”

4.TTL电平:

计算机内部(S3C2410)使用TTL电平

5.电平转换电路:

常用专门的RS-232接口芯片,如SP3232、SP3220等,在TTL电平和EIA电平之间实现相互转换。

S3C2410异步串行口控制器

1.S3C2410自带三个异步串行口控制器

2.每个控制器有16字节的FIFO(先入先出寄存器)

3.最大波特率115.2K

4.每个UART有7种状态:

溢出错误,校验错误,帧错误,暂停态,接收缓冲区准备好,发送缓冲区空,发送移位缓冲器空,这些状态可以由相应的UTRSTATn或UERSTATn寄存器表示,并且与发送接收缓冲区相对应的有错误缓冲区

5.波特率的大小可以通过设置波特率寄存器(UBRDIVn)控制,计算公式如下:

使用PCLK时的计算公式如下:

UBRDIVn=(int)[PCLK/(波特率×16)]–1

使用UCLK时的计算公式如下:

UBRDIVn=(int)[UCLK/(波特率×16)]–1

例如:

使用PCLK,在40MHz的情况下,当波特率取115200bps时,

UBRDIVn=(int)[40000000/(115200×16)]–1=20

[实验步骤]

1、串口初始化

/*配置系统时钟*/

ChangeClockDivider(1,1);//1:

2:

4

ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHz

/*初始化端口*/

Port_Init();

/*初始化串口*/

Uart_Init(0,115200);

Uart_Select(0);

2、发送数据

unsignedcharch='a';

ch=Uart_Getch();

3、接收数据

Uart_SendByte(ch)

[试验内容二]

编写中断处理程序,处理外部中断

[基础知识]

CPU与外设之间传输数据的控制方式

1、查询方式

查询方式的优点是硬件开销小,使用起来比较简单,但在此方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的大量时间,降低了CPU的利用率

2、中断方式

当CPU进行主程序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停执行当前正在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU再返回并继续执行原来被中断的主程序。

这样CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高

3、DMA方式

当高速外设要与系统内存或者要在系统内存的不同区域之间,进行大量数据的快速传送时,查询方式和中断方式可能不能满足要求,直接存储器存取(DMA)就是为解决这个问题提出的采用DMA方式,在一定时间段内,由DMA控制器取代CPU,获得总线控制权,来实现内存与外设或者内存的不同区域之间大量数据的快速传送

中断处理示意图

向CPU发出中断请求的设备或事件称为中断源,断点处产生中断请求,CPU执行中断流程,响应中断,并执行用户定义的中断服务子程序处理完毕,执行中断返回动作,主程序继续运行

中断响应

中断源向CPU发出中断请求,若优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。

然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。

中断服务子程序

S3C2410的中断控制器:

1、中断源状态寄存器

该寄存器的32位中每一位对应一个中断源。

如果相应中断源产生中断请求则其对应位被置为1。

该寄存器中的位将自动由中断请求置位,而不管INTMASK寄存器中的掩码位是否有效。

另外,该寄存器不受中断控制器的优先级逻辑影响。

在中断服务程序中,该寄存器的相应位必须进行清零处理,清零的方法是将该位写入1。

2、寄存器中断模式

3、中断屏蔽寄存器

4、优先级寄存器

5、中断状态寄存器

6、中断偏移寄存器

[实验步骤]

1、建立一个中断工程。

2、编写外部中断处理程序的中断服务函数,并保存为main.c文件,将该文件加入到工程中。

3、在中断服务函数中添加代码实现如下功能:

每触发一次中断,跑马灯闪烁一次。

4、编译、下载运行程序查看程序是否正常。

[实验报告要求]

1.中断处理的主要步骤有哪些?

试说明每一步的主要工作

2.说明S3C2410非矢量中断与矢量中断的区别

3.简述S3C2410非矢量中断的处理步骤。

4.简述串行接口的工作原理以及串行接口的优缺点

5.RS-232C的最基本数据传送引脚是哪几根?

画出双机通讯的基本接线图

6.简述串行接口通讯程序设计的基本步骤

实验二基本接口实验

(二)

[实验目的]

1、了解实时时钟在嵌入式系统中的作用

2、掌握实时时钟的使用

3、了解触摸屏基本概念与原理

4、编程实现并掌握对触摸屏的控制

[试验内容一]

编程实现实时时钟功能,每秒显示实时时钟、编程实现实时时钟告警功能

[预备知识]

1、了解ADT集成开发环境的基本功能

2、学习S3C2410的实时时钟模块的使用

[实验设备]

1.JXARM9-2410教学实验箱

2.ADT1000仿真器和ADTIDE集成开发环境

[基础知识]

1、实时时钟在嵌入式系统中的作用

在一个嵌入式系统中,实时时钟单元可以其提供可靠的时钟,包括时分秒和年月日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。

S3C2410的PWM控制器

❑时钟数据采用BCD编码

❑能够对闰年的年月日进行自动处理

❑具有告警功能,当系统处于关机状态时,能产生告警中断;

❑具有独立的电源输入

❑提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟

2、S3C2410中与PWM控制器有关的寄存器

控制寄存器

告警控制寄存器

实时时钟计数器

告警时间寄存器

实时时钟寄存器

[实验步骤]

1、建立RTC工程,添加相应文件并修改PWM的工程设置。

2、创建main.c编写程序,并将该文件加入到工程RTC中。

3、时钟滴答功能测试,通过LED显示TIMETICK

4、时间告警功能测试。

[试验内容二]

1.编程实现触摸屏坐标到LCD坐标的校准

2.编程实现触摸屏坐标采集以及LCD坐标的计算

[预备知识]

1.了解ADT集成开发环境的基本功能

2.学习触摸屏的原理

3.了解触摸屏与显示屏的坐标转换

[基础知识]

触摸屏的基本原理

触摸屏按其工作原理的不同分为:

电阻技术触摸屏

电阻触摸屏是与显示器表面非常配合的电阻薄膜屏,这是一种多层复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(ITO氧化铟,透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、内表面也涂有一层ITO涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。

当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,控制器侦测到这一接触并计算出(X,Y)的位置,再根据模拟鼠标的方式运作。

主要特点:

1.高解析度,高速传输反应

2.表面硬度处理,减少擦伤、刮伤及防化学处理

3.具有光面及雾面处理

4.一次校正,稳定性高,永不漂移

表面声波技术触摸屏

表面声波技术是利用声波在物体的表面进行传输,当有物体触摸到表面时,阻碍声波的传输,换能器侦测到这个变化,反映给计算机,进而进行鼠标的模拟。

主要特点:

1.清晰度较高,透光率好

2.高度耐久,抗刮伤性良好

3.一次校正不漂移

4.反应灵敏

缺点:

易污损,需要经常维护

电容技术触摸屏

利用人体的电流感应进行工作。

用户触摸屏幕时,由于人体电场,用户和触摸屏表面形成以一个耦合电容,对于高频电流来说,电容是直接导体,于是手指从接触点吸走一个很小的电流。

这个电流分从触摸屏的四角上的电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。

主要特点:

1.对大多数的环境污染物有抗力

2.人体成为线路的一部分,因而漂移现象比较严重

3.带手套不起作用

4.需经常校准

5.不适用于金属机柜

6.当外界有电感和磁感的时候,会使触摸屏失灵

JXARM9-2410的触摸屏控制电路

触摸屏处理流程

1.触摸屏控制初始化,选择SeparateX/Y位置转换模式或者AutoX/Y位置转换模式;

2.设置触摸屏接口到等待中断模式;

3.如果中断产生,相应的转换(SeparateX/Y位置转换模式或者AutoX/Y位置转换模式)被激活;

4.在获取X/Y坐标值后,返回到等待中断模式。

[实验步骤]

1.建立一个touch工程。

2.创建一个touch.c并加入到工程touch中。

3.编写程序分别校正LCD左上角和右下角坐标

4.编写程序采集触摸屏坐标屏将其转换到LCD坐标并通过串口打印出来。

5.编译程序、下载运行并观察输出结果。

[实验报告要求]

1.常见的触摸屏有哪几种,说明各自的优缺点

2.以四线电阻式触摸屏为例,说明电阻式触摸屏的工作原理

3.举例说明触摸屏坐标与屏幕坐标之间的转换

4.简述PWM的原理和应用

5.记录实验结果,描述S3C2410XPWM模块的使用方法。

实验三BootLoader及Linux内核移植实验

[实验目的]

1、了解BootLoader在嵌入式系统中的作用

2、掌握u-boot的基本功能。

3、熟悉交叉编译环境的建立和使用。

4、熟悉Linux开发环境,掌握Linux内核的配置和裁剪。

5、了解Linux的启动过程

[试验内容一]

学习u-boot的基础知识和常用命令,并按照实验步骤实际操作。

[预备知识]

掌握嵌入式系统软件开发基础知识。

[试验设备]

1、硬件:

JXARM9-2410嵌入式试验箱,PC机Pentium500以上,硬盘10G以上。

2、软件:

PC机操作系统RedhatLinux9.0,Linux开发环境。

[基础知识]

1、BootLoader基本概念

2、u-boot基本程序结构

3、Linux文件系统

[实验步骤]

1、启动uboot

将串口线连接到计算机的串口和实验箱的UART0;在计算机中打开dnw串口超级终端工具,如下图所示:

然后点击“SerialPort”的“Connect”菜单项,在标题栏将提示如下图所示:

将实验箱上电,在dnw中将可以看到如下图所示界面,此界面即为uboot命令行操作界面。

后续各个步骤的操作系统引导都需要在uboot界面下进行。

5.1.Uboot基本命令实验

1)分别在u-boot中输入如下命令,并观察实验结果

JX2410#help

JX2410#flinfo

JX2410#helpflinfo

JX2410#bdinfo

2)uboot内存操作实验

在uboot中输入如下命令,以实现将0x3000000开始的0x100字节数据复制到0x3100000处。

JX2410#md30000000100

JX2410#md31000000100

JX2410#cmp.b3000000031000000100

JX2410#cp.b3000000031000000100

JX2410#cmp.b3000000031000000100

观察在输入cp.b命令前后的cmp.b命令执行结果。

在uboot中输入如下命令,以实现内存修改

JX2410#md.b3000000010

JX2410#mm300000000

JX2410#mw.b30000000ff10

JX2410#md.b3000000010

观察每次md.b命令的结果。

在uboot中输入如下命令,以实现对0x30000000起始地址1M内存区域的自动测试

JX2410#mtest30000000030100000

3)tftp程序下载和引导操作实验

在uboot中输入如下命令,实现如下功能:

将主机上的diag.bin程序通过tftp下载到0x30000000地址,并从该地址处运行diag.bin程序。

JX2410#tftp30000000diag.bin

JX2410#go30000000

4)uboot环境变量操作实验

在uboot中输入如下命令,创建一个环境变量,并运行该环境变量。

JX2410#printenv

JX2410#setenvtent‘echothisistest’

JX2410#printenv

JX2410#saveenv

JX2410#runtest

在u-boot中输入如下命令,创建一个环境变量,实验C的tftp下载功能。

JX2410#printenv

JX2410#setenvtext‘tftp30000000diag.bin;go300000000;

JX2410#printenv

JX2410#saveenv

JX2410#runtest

在uboot中输入如下命令,实现自主引导,uboot启动后自动执行上一步中创建的test环境变量。

JX2410#setenvbootcmd‘runtest’

JX2410#saveenv

JX2410#reset

5.2uboot文件系统实验

1)uboot文件系统支持

通过修改配置文件/home/cvtech/jx2410/u-boot-1.1.1/include/configs/smdk2410.h中的宏定义进行文件系统配置支持。

#defineCFG_JFFS2_FIRST_BANK0

#defineCFG_JFFS2_FIRST_SECTOR2

#defineCFG_JFFS2_NUM_BANK1

2)制作JFFS2/CRAMFS文件系统

A、制作JFFS2文件系统

在PC中制作JFFS2文件系统使用mkfs.jffs2工具,下面示例将/home/cvtech/jx2410/root/jffs2目录下的内容制作成JFFS2文件系统,并保存为prog.jffs2文件。

$cd/home/cvtech/jx2410/root

$/home/cvtech/jx2410/root/mkfs.jffs2–djffs2-oprog.jffs2

$lsprog.jffs2-l

-rw-r-r-1rootroot557465611月1809:

50prog.jffs2

$cp/home/cvtech/jx2410/root/prog.jffs2/tftpboot

B、制作CRAMFS文件系统

在PC中制作CRAMFS文件系统使用mkfs.cramfs工具,下面示例将/home/cvtech/jx2410/root/cramfs目录下的内容制作成CRAMFS文件系统,并保存为prog.cramfs文件。

$cd/home/cvtech/jx2410/root

$/home/cvtech/jx2410/root/mkfs.cramfscramfs/prog.cramfs

$lsprog.cramfs-l

-rw-r-r-1rootroot557465611月1809:

58prog.cramfs

$cp/home/cvtech/jx2410/root/prog.cramfs/tftpboot

3)烧写JFFS2/CRAMFS文件系统

文件系统映象文件制作完成后就可以通过uboot的FLASH烧写功能将其烧写到FLASH中,制作完成后的文件系统映像文件分别为:

prog.Cramfs和prog.jffs2,它们都保存在主机的/tftpboot目录下,通过tftp将这两个文件下载到目标机,然后烧写到FLASH的第66到95扇区,具体操作过程如下:

A、烧写JFFS2文件系统

jx2410#erase1:

66-95

jx2410#tftp30000000prog.jffs2

jx2410#cp.b300000001080000551000

B、烧写CRAMFS文件系统

jx2410#erase1:

66-95

jx2410#tftp30000000prog.cramfs

jx2410#cp.b300000001080000551000

4)加载JFFS2/CRAMFS文件系统

不管Flash中烧写的是JFFS2还是CRAMFS,启动后都可以使用ls命令查看文件系统内容,如下所列,如果看到如下信息表示文件系统加载正确。

JX2410#ls

ScanningJFFSFS:

done

-r-r-r204WedAug2910:

56:

352020mounts

[试验内容二]

1、了解Linux基础知识以及Linux的开发环境。

2、根据教学实验系统的硬件资源,配置并编译Linux核心。

3、下载并运行Linux核心,检查运行结果。

[预备知识]

1、了解Linux的一些基本操作命令以及Linux系统下用户环境的设置。

2、掌握Linux下的程序编译与交叉编译过程。

[试验设备]

1.硬件:

JXARM9-2410嵌入式试验箱,PC机Pentium500以上,硬盘10G以上。

2.软件:

PC机操作系统RedhatLinux9.0,Linux开发环境。

[基础知识]

1)编译Linux

配置内核:

启动菜单配置工具后,选择“LoadAlternateConfigurationFile”选项,然后确认。

该选项载入jx2410的标准配置文件config-jx2410,该文件保存在/home/cvtech/jx2410/linux目录下,请不要修改这个文件。

在提示框中键入config-jx2410配置文件名,然后选择“OK”确认,将退回到主菜单。

然后按“Esc”键退出,并将提示是否保存,请选择“Yes”保存。

建立依赖关系:

编译:

2)加载Linux内核映像

将/tftpboot/ramdisk.gz下载到SDRAM运行内核。

先将生成的ZImage拷贝到/tptpboot

然后启动uboot,并在uboot中使用tftp下载到ramdisk.gz和zImage。

[实验步骤]

1.编译Linux核心。

2.下载Linux核心并运行。

3.重新配置Linux,删除网络、显示器、触摸屏等硬件,编译、下载并运行。

[实验报告要求]

1、BootLoader在嵌入式系统中的作用是什么?

它有哪些基本功能

进行如下实验:

将一个可以运行的二进制文件制作到JFFS2文件系统中,并在uboot中从文件系统加载该文件并运行(可以以提供的Linux内核映像文件ZImage为例,请将ZImage加载到内存0x30008000位置处)

3.交叉编译环境包括哪些工具?

它们的作用是什么?

4.简述Linux的启动过程。

 

实验四Linux程序编写实验

[实验目的]

1、熟悉JXARM9-2410教学系统中的LINUX开发环境

2、掌握简单的LINUX应用程序——HELLOWORLD的编译

3、掌握LINUX驱动程序编程

4、掌握LINUX应用程序加载驱动程序的方法和动态加载驱动程序模块的方法。

[试验内容一]

1、编写HELLOWORLD程序

2、编写Makefile文件

3、编译HELLOWORLD应用程序

4、下载并调试HELLOWORLD应用程序

[预备知识]

1、C语言的基础知识

2、程序调试的基础知识和方法

3、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1