实 验 报 告
(实验五)
课程名称 嵌入式系统设计
专业班级
姓
学
名
号
计算机工程与技术学院
实验教学考核和成绩评定办法
1. 课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不
合格者,不能参加课程考试,待补做合格后方能参加考试。
2. 单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。
3. 实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验
态度、表现);3)实验报告;权重分别为 0.2 、0.4 、 0.4;原则上根据上述三个方
面进行综合评定。学生未取得 1)和 2)项成绩时,第 3)项成绩无效。
4. 实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出
综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。
实验报告主要内容
一. 实验目的
二. 实验仪器及设备
三. 实验原理
四. 实验步骤
五. 实验记录及原始记录
六. 数据处理及结论
七. 实验体会(可选项)
注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用 A4 纸,实验报告建议双面打印(正文采
用宋体五号字)或手写,右侧装订。
2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。
3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事
实、概念或理论)的实验。
4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。
5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。
实验题目
实验室
实验五:ARM 的 I/O 接口实验
9206
实验时间
年
月 日
实验类别
验证
同组人数
1
成 绩
指导教师签字:
实验内容
实验设备
实验目的
实验原理
一、
1.了解 S3C2410 的通用 I/0 接口
2.掌握 I/0 功能的复用并熟练的配置,进行编程实验
二、
1.在实验箱的 CPU 板上点亮 LED 灯 LED1、LED2,并轮流闪烁!
三、
1.EL-ARM-860 教学实验箱,PentiumII 以上的 PC 机,仿真调试电缆。
2.PC 操作系统 WIN98 或 WIN2000 或 WINXP,ADS1.2 集成开发环境,仿真调试驱动程序。
四、
S3C2410 CPU 共有 117 个多功能复用输入输出口,分为 8 组端口:
·4 个 16 位的 I/0 端口(PORT C、PORT D、PORT E、PORT G)
·2 个 11 位的 I/0 端口(PORT B 和 PORT H)
·1 个 8 位的 I/0 端口(PORT F)
·1 个 23 位的 I/0 端口(PORT A)
这些通用的 GPI/0 接口,是可配置的,PORTA 除功能口外,它们仅用作输出使用,剩下的 PORTB、PORTC、
PORTD、PORTE、PORTF、PORTG 均可作为输入输出口使用。
配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长 32 位。
往该地址中写入相应的数据,即可实现功能及数据配置。
GPACON (Ox56000000)/ /Port A control
GPADAT (Ox56000004) //Port A data
GPBCON (Ox56000010)//Port B control
GPBDAT (Ox56000014)/ /Port B data
GPBUP(Ox56000018)//Pull-up control B
GPCCON (Ox56000020)/ /Port C control
GPCDAT (Ox56000024)/ /Port C data
GPCUP (Ox56000028)//Pull-up control c
GPDCON (Ox56000030)//Port D control
GPDDAT (Ox56000034) //Port D data
GPDUP (Ox56000038)//Pul1-up control D
GPECON (Ox56000040)//Port E control
GPEDAT (Ox56000044)//Port E data
GPEUP(Ox56000048)//Pul1-up control E
GPFCON (Ox56000050)//Port F control
GPFDAT (Ox56000054)/ /Port F data
GPFUP(Ox56000058)//Pull-up control F
GPGCON (Ox56000060)/ /Port G control
GPGDAT (Ox56000064)//Port G data
GPGUP (Ox56000068)//Pul1-up control G
GPHCON (Ox56000070)/ /Port H control
GPHDAT (Ox56000074)//Port H data
GPHUP (Ox56000078)//Pull-up control H
现用 G 口、H 口举例说明。对于 G 口如表 1、表 2、表 3,
表 1
表 2
也就是说,在地址 Ox0x56000060 中,给 32 位的每一位赋值,那么,在 CPU 的管脚上就定义了管脚的功
能值。当 G 口某管脚配置成输出端口,则在 PDATG 对应的地址中的对应位上,写入 1,则该管脚输出为高电
平,写入 0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。
对于 H 口见表 4、表 5、表 6、表 7
表 6
也就是说,在地址 Ox56000070 中,给 32 位的每一位赋值,那么,在 CPU 的管脚上就定义了管脚的功能
值。当 H 口某管脚配置成输入端口,则在 GPHDAT 对应的地址中的对应位上,得到 1,则该管脚的输入为高
电平,得到 0,则该管脚的输入为低电平。当 H 口某管脚配置成输出端口,则在 GPGDAT 对应的地址中的对
应位上,写入 1,则该管脚输出为高电平,写入 0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变
成具体的功能脚。其他端口配置请参见 PDF 文挡。
在程序中对 GPI/0 各寄存器的读写实现,是通过给宏赋值实现的。这些宏在 2410addr.h 中定义;具体如:。
#define rGPACON
#define rGPADAT
#define rGPBCON
#define rGPBDAT
(* (volatile unsigned *)Ox56000000)(//Port A control
(* (volatile unsigned *)Ox56000004)//Port A data
(*(volatile unsigned *)Ox56000010)/ /Port B control
(*(volatile unsigned *)Ox56000014)//Port B data
#define rGPBUP
* (volatile unsigned *)0x56000018)//Pull-up control B
#define rGPCCON
#define rGPCDAT
#define rGPCUP
(* (volatile unsigned *)Ox56000020)//Port C control
(*(volatile unsigned *)Ox56000024)//Port C data
(*(volatile unsigned *)Ox56000028)//Pull-up control C
#define rGPDCON
#define rGPDDAT
#define rGPDUP
(*(volatile unsigned *)0x56000030)//Port D control
(*(volatile unsigned *)Ox56000034)//Port D data
(*(volatile unsigned *)Ox56000038)//Pul1-up control D
#define rGPECON
#define rGPEDAT
#define rGPEUP
(*(volatile unsigned *)0x56000040)//Port E control
(*(volatile unsigned *)0x56000044)/ /Port E data
(* (volatile unsigned *)Ox56000048)//Pull-up control E
#define rGPFCON
#define rGPFDAT
#define rGPFUP
(* (volatile unsigned *)0x56000050)/ /Port F control
(*(volatile unsigned *)0x56000054)(/Port F data
(*(volatile unsigned *)Ox56000058)//Pull-up control F
#define rGPGCON
#define rGPGDAT
#define rGPGUP
(*(volatile unsigned *)Ox56000060)(/Port G control
(*(volatile unsigned *)0x56000064)//Port G data
(*(volatile unsigned *)Ox56000068)//Pull-up control G
(*(volatile unsigned *)Ox56000078)//Pull-up control H
(*(volatile unsigned *)0x56000070)//Port H control
(*(volatile unsigned *)Ox56000074)//Port H data
#define rGPHCON
#define rGPHDAT
#define rGPHUP
因此,配置端口 G,在程序中也就是用如下语句即可:
rGPGCON = rGPGCON & 0xfffoffff │ Ox00050000;//配置第 8、第 9 位为输出管脚
rGPGDAT = rGPGDAT & 0xeff| 0x200;//配置第 8 位输出为低电平,第 9 位输出高电平。
其他的各功能寄存器在 2410addr.h 中也都有相应的定义,参照该做法,即可把 GPI/O 管脚配置成输入输
实验步骤
出端口,也可把管脚配置成所需的功能管脚。
五、
1.本实验使用实验教学系统的 CPU 板,在进行本实验时,LCD 电源开关、音频的左右声道开关、AD 通道选
择开关、触摸屏中断选择开关等均应处在关闭状态。
2.在 PC 机并口和实验箱的 CPU 板上的 JTAG 接口之间,连接仿真调试电缆以及串口间连接公/母接头串口线。
3.打开超级终端,配置串口的属性(如 COM1),配置波特率为 115200,校验位无,数据位为 8,停止位为 1,
数据控制流为无;进入 VIVI 状态。
4.打开 ADS1.2 开发环境,打开\实验五\I0.mcp 项目文件,进行编译。
5.编译通过后,进入 ADS1.2 调试界面,加载\实验五\IO_Data\Debug 中的映象文件程序映像 IO.axf。
6.在 ADS 调试环境下全速运行映象文件。观察 CPU 板左下角的 LED1、LED2 灯轮流的闪烁!这是对 GPIO 口
操作的结果。具体实现见程序。在实验报告中对主程序进行分析。
实验体会
六、
本次实验了解了 S3C2410 的通用接口,理解了 I/O 功能的复用并熟练的配置,通过运行老师给的实验代码,
进行编译,加载映像文件程序映像 IO.axf 完成了本次实验,实验结果为实验箱的 CPU 板上的小灯 LED1 和 LED2
轮流闪烁。在做实验的时候我们的设备有问题,两个灯都亮了。我们通过换了两台设备才终于做出了最终的结
果。