实验2S3C2410GPIO控制实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 S3C2410GPIO控制实验
一、实验目的
1.熟悉ADS1.2 开发环境,正确使用仿真调试电缆进行编译、下载、调试。

2.了解S3C2410 的通用I/O 接口,
3.掌握I/0 功能的复用并熟练的配置,
4.对相应I/0接口进行编程实验,控制实验箱LED 灯点亮。

二、实验设备
硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+ARM-LINUX 开发环境。

三、预备知识
S3C2410 CPU 共有117个多功能复用输入输出口,分为8组端口:
●4个16位的I/O端口(PORT C、PORT D、PORT E、PORT G)
●2个11位的I/O端口(PORT B 和PORT H)
●1个8位的I/O端口(PORT F)
●1个23位的I/O端口(PORT A)
这些通用的GPI/O接口,是可配置的, PORTA除功能口外,它们仅用作输出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。

配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长32位。

往该地址中写入相应的数据,即可实现功能及数据配置。

GPACON (0x56000000) //Port A control
GPADAT (0x56000004) //Port A data
GPBCON (0x56000010) //Port B control
GPBDAT (0x56000014) //Port B data
GPBUP (0x56000018) //Pull-up control B
GPCCON (0x56000020) //Port C control
GPCDAT (0x56000024) //Port C data
GPCUP (0x56000028) //Pull-up control C
GPDCON (0x56000030) //Port D control GPDDAT (0x56000034) //Port D data GPDUP (0x56000038) //Pull-up control D GPECON (0x56000040) //Port E control GPEDAT (0x56000044) //Port E data GPEUP (0x56000048) //Pull-up control E GPFCON (0x56000050) //Port F control GPFDAT (0x56000054) //Port F data GPFUP (0x56000058) //Pull-up control F GPGCON (0x56000060) //Port G control GPGDAT (0x56000064) //Port G data GPGUP (0x56000068) //Pull-up control G GPHCON (0x56000070) //Port H control GPHDAT (0x56000074) //Port H data GPHUP (0x56000078) //Pull-up control H 现用C口举例说明。

也就是说,在地址0x56000020中,给32位的每一位赋值,那么,在CPU 的管脚上就定义了管脚的功能值。

当C口某管脚配置成输入端口,则在GPCDAT 对应的地址中的对应位上,得到1,则该管脚的输入为高电平,得到0,则该管脚的输入为低电平。

当C口某管脚配置成输出端口,则在GPGDAT对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。

若配置为功能管脚,则该管脚变成具体的功能脚。

四、实验原理
1.实验平台中LED灯的连接原理图
2.对LED灯控制的程序如下:
void ARMTargetInit(void);
void hudelay(int time);
int main(void)
{
int flag, i;
ARMTargetInit();
while(1){
if(flag==0) {
for(i=0;i<1000000;i++); //延时
rGPCCON = rGPCCON & 0xffff03ff | 0x00005700;
rGPCDAT = rGPCDAT & 0xff1f | 0xffff;
for(i=0;i<1000000;i++); //延时
flag = 1;
} else {
for(i=0;i<1000000;i++); //延时
rGPCCON = rGPCCON & 0xffff03ff | 0x00005700;
rGPCDAT = rGPCDAT & 0xff1f | 0xff1f;
for(i=0;i<1000000;i++); //延时
flag = 0;
}
}
}
五、实验步骤
1.本实验使用UP-TECH S2410/P270 DVP 嵌入式实验平台,将J-Link一端20P 连接UP-CUP2410型平台底板ARM-JTAG20插槽当中,另一端通过USB从口线连接PC机USB口。

2.将串口线一端连接到PC机端串口,另一端连接到UP-CUP2410型平台串口0(RS232-0即开发板上方左侧的串口)上。

3.打开XShell,配置串口的属性(如COM1),配置波特率为115200,校
验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠
后,接入电源线,系统上电,同时按住“空格”键,进入VIVI状态。

a) 双击运行Xshell
b) 点击上图箭头所指图标,新建会话,Name 栏中随便填写,Method 栏中
选择SERIAL,之后点击红色线框内的setup 项,选择波特率为115200,确定即可。

c) 正常会出现如下窗口,我们点击红色线框内的connect。

a)现在你已经可以使用xshell 与实验箱进行交互了。

b)打开实验箱电源,同时按下空格键,使系统启动停留在vivi引导阶段。

4.安装ADS1.2
双击ADS1.2安装程序:
点击next:
点击yes:
点击next:
选择典型安装,点击next:
点击next:
点击next:
点击next:
等待安装到100%后,出现ARM License安装界面:
点击下一步:
选择Install License,点击下一步:
点击Browse选择License File,选择源安装目录下(就是与ADS1.2安装程序同级目录下)的Crack\License.dat文件:
点击打开:
点击下一步:
点击下一步:
点击完成:
点击Finish,ADS1.2软件安装完成。

5.打开ADS1.2软件(开始->所有程序->ARM Developer Suite v1.2->
CodeWarrior for ARM Developer Suite):
6.打开工程实验2\ Exp1.mcp,点击File—>open:
7.选择工程存放路径:
点击打开,打开Exp1.mcp工程:
remove object code ,出现下图,点击All Targets:
9.编译工程,点击project->make:
编译之后出现如下窗口,只要没有error就可以,warning可以忽略:
6.点击debug,或者project->debug(注意:这一步之前,一定要连接好JLINK仿真器到我们的实验平台,串口有输出,且处于vivi下,实验平台JLINK接口下方的跳线跳接到
2-3模式)
7.点击debug后,调用ADS自带的AXD调试器:
8.选择Options->configure target,出现下图:
9.点击Add,浏览到Jlink的动态库文件JLinkRDI.dll(此文件在JLINK驱动安装目录
下),选中JLinkRDI.dll
点击打开,出现下图:
可以看到JLink驱动被添加进来了,点击OK:
这时可以看到JLink识别到了我们的CPU。

10.配置JLink,点击configuration:
选择flash,将Enable flash programming选项选中:
点击确定。

11.运行程序,在AXD 空白中出现了汇编的代码,这是运行的第一段汇编代码,在文件startup.s,若找不到这个文件可浏览到工程目录下startup/startup.s。

点击运行,主窗口出现运行到主函数的界面。

再次点击运行,可以看到三盏LED同时闪烁现象:
12.结束时,选择暂停按钮,然后关闭AXD窗口,也可以单步调试step。

六、实验思考
1.试改写程序,控制LED灯双闪。

2.试改写程序,完成led灯以二进制累加形式点亮。

相关文档
最新文档