完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、GPIO
GPIO(General Purpose Input/Output Port),即通用输入输出端口,就是芯片的一些引脚。作为输入端口时,我们可以通过它们读入引脚的状态--高电平或低电平,作为输出端口时,我们可以通过它们输出高电平或低电平来控制连接的外围设备。 S3C2440有130个GPIO引脚,分为A~J共9组:GPA、GPB、…、GPJ。通过设置相应的寄存器来设置某个引脚的功能(输入或输出或是其他特殊功能)。 2、通过寄存器操作GPIO 每个端口可以很容易的通过软件配置以满足各种系统配置和设计需求,在使用之前你必须定义每个引脚的功能,如果不是用于复用功能,则引脚可以配置为普通输入输出端口。 1)端口配置寄存器GPxCON(x为A~J) GPxCON是用于选择引脚功能。 PORT A的端口配置寄存器GPACON中每一位对应一个引脚(PORT A共23个引脚,bit0~bit22对应GPA0~GPA22)。当某位被设为0时,相应的引脚被设置成输出引脚,此时可以在GPADAT中相应位写入0或1让此引脚输出低电平或高电平。当某位被设为1时,相应的引脚被设为地址线或用于地址控制,此时GPADAT无用。(GPACON通常被设为全1,以便访问外部存储器件) PORT B~PORT J的端口配置寄存器操作完全相同:GPxCON中每两位控制一个引脚,00为输入、01为输出、10为特殊功能、11保留。 2)端口数据寄存器GPxDAT(x为A~J) GPxDAT是用于读/写引脚数据。 当引脚被设为输入时,读此寄存器可得到相应引脚的电平状态是高还是低;当引脚被设为输出时,通过写此寄存器的相应位可设置相应引脚输出高电平或低电平。 3)端口上拉寄存器GPxUP(x为B~J,注意:PORT A端口没有这个寄存器) GPxUP是用于选择是否使用内部上拉电阻。 此寄存器的某位被设置为1时,相应引脚不使用内部上拉电阻;设置为0时,相应引脚使用内部上拉电阻。 3、使用软件来访问硬件 对单个引脚的操作有3种:输出高低电平、检测引脚状态、中断,这些操作一般通过读、写寄存器完成。如图2所示电路,可以设置GPFCON寄存器将GPF4、GPF5、GPF6引脚设置4为输出功能,然后写GPFDAT寄存器的相应位使这3个引脚输出高电平或低电平来控制相应的LED。相应的引脚输出低电平时,LED点亮,输出高电平时,LED熄灭。 S3C2440的GPFCON、GPFDAT寄存器地址分别是0x56000050、0x56000054,通过软件读写它们的地址可以访问这些寄存器。更多学习交流可以加Q3472880374 4、GPIO操作实例 使用GPIO控制一个LED。例如,我们要想点亮LED1,就需要设置GPF4引脚为输出功能,然后设置该引脚输出低电平。 板子上电后执行的第一条指令,并不是main函数,如果我们使用keil开发,启动文件会由编译器完成(会有一个S3C2440.S文件就是启动文件),它要做的工作主要是各种初始化然后跳转到C文件的main函数执行。但是我们在Linux系统下使用arm-linux-gcc编译裸机程序时,就需要自己编写一个这样的启动文件代码。(建一个目录led_on_c,把编写的代码文件和Makefile文件放在该目录下) 自己编写的启动文件代码crt0.S内容: 下面是LED1的控制程序led_on_c.c文件,内容如下: Makefile文件: 第2、3行分别编译源程序crt0.S、led_on_c.c 第4行将编译得到的结果连接起来 第5行把连接得到的ELF格式可执行文件led_on_c_elf转换成二进制格式文件led_on_c.bin 第6行将结果转换为汇编码以供查看 在led_on_c目录下执行make命令生成可执行文件led_on_c.bin,然后把该文件烧写到NAND Flash。 |
|
|
|
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
124 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
506 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
710 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
634 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介
1225 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 19:27 , Processed in 0.539312 second(s), Total 64, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号