每个GPIO端口至少需要两个寄存器,一个是用于控制的“通用I/O端口控制寄存器”,一个是存放数据的“通用I/O端口数据寄存器”。控制和数据寄存器的每一位和GPIO的硬件引脚相对应,由控制寄存器设置每一个引脚的数据流向,数据寄存器设置引脚输出的高低电平或读取引脚上的电平。S5PV210共有237个GPIO端口,分成15组。GPP1:低功率I2S、PCM。GPIO的15组引脚除了作为输入、输出引脚外,一般都还有其他功能,称为引脚复用。图4.6GPIO端口功能框图......
2023-11-19
每组GPIO端口都有两类控制寄存器,分别工作在正常模式和掉电模式(STOP、DEEPSTOP、睡眠模式)。
S5PV210处理器工作在正常模式下时,正常寄存器(如GPA0控制寄存器GPA0CON,GPA0数据寄存器GPA0DAT,GPA0上拉/下拉寄存器GPA0PUD,GPA0驱动能力控制寄存器GPA0DRV)工作;进入掉电模式时,所有配置和上拉/下拉控制由掉电寄存器(如GPA0的掉电模式配置寄存器GPA0CONPDN,GPA0的掉电模式上拉/下拉寄存器GPA0 PUDPDN)控制。
GPIO主要的相关寄存器:
GPIO控制寄存器GPxnCON。用于控制GPIO的引脚功能,向该寄存器写入数据来设置相应引脚是输入/输出,还是其他功能。该寄存器中每4位控制一个引脚,写入0000设置为输入IO口,从引脚上读入外部输入的数据;写入0001设置为输出IO口,向该位写入的数据被发送到对应的引脚上;写入其他值可设置引脚的第二功能,具体功能可查阅S5PV210处理器的芯片手册。(www.chuimin.cn)
GPIO数据寄存器GPxnDAT。用于读写引脚的状态,即该端口的数据。当引脚被设置为输出引脚,写该寄存器的对应位为1,设置该引脚输出高电平,写入0设置该引脚输出低电平;当引脚被设置为输入引脚,读取该寄存器对应位中的数据可得到端口电平状态。
GPIO上拉/下拉寄存器GPxnPUD,用于控制每个端口上拉/下拉电阻的使能/禁止。对应位为0时,该引脚使用上拉/下拉电阻;对应位为1时,该引脚不使用上拉/下拉电阻。
GPIO掉电模式上拉/下拉寄存器GPxnPUDPDN,用于掉电模式下使用。每两位对应一个引脚,为00时输出0,01时输出1,10时为输入功能,11时保持原有状态。
有关ARM嵌入式系统原理与应用的文章
每个GPIO端口至少需要两个寄存器,一个是用于控制的“通用I/O端口控制寄存器”,一个是存放数据的“通用I/O端口数据寄存器”。控制和数据寄存器的每一位和GPIO的硬件引脚相对应,由控制寄存器设置每一个引脚的数据流向,数据寄存器设置引脚输出的高低电平或读取引脚上的电平。S5PV210共有237个GPIO端口,分成15组。GPP1:低功率I2S、PCM。GPIO的15组引脚除了作为输入、输出引脚外,一般都还有其他功能,称为引脚复用。图4.6GPIO端口功能框图......
2023-11-19
GPIO是一组可编程控制的引脚,由多个寄存器同时控制。应用程序都能够通过相应的接口使用GPIO。GPIO驱动主要作用就是读取GPIO口的内容,或者设置GPIO口的状态。GPIO与硬件体系密切相关,在Linux内核目录下的相关文件中我们可以发现针对不同硬件芯片的GPIO定义和使用方法,如本书涉及的S5PV210芯片Linux内核中也有相应的驱动程序支持。本章主要讲的就是如何使用Linux内核封装好的GPIO接口函数在驱动开发中需要操作GPIO时候的使用。......
2023-11-19
Cortex-A8处理器有40个32位寄存器,分为33个通用寄存器和7个程序状态寄存器。表2.4ARM状态下Cortex-A8寄存器组②R13是堆栈指针寄存器,用于指向堆栈区的栈顶。表2.5程序状态寄存器位格式条件代码标志位N、Z、C和V位都是条件代码标志。......
2023-11-19
GPIO属于字符设备,其驱动可以归类为Linux设备驱动的字符设备驱动。编写一个程序gpio_led.c,实现对实验箱CVT_A8上连接在GPIO端口的LED驱动程序,使得实验箱上的发光二极管轮流点亮,既常见的流水灯。既然是这样,则编写设备驱动程序的主要工作就是编写子函数,并填充file_operations的各个域。函数分别为device ioctl并在模块初始化函数dev init中调用misc register函数进行注册ioctl操作函数实现。模块退出操作模块退出,必须删除设备驱动程序并释放占用的资源,使用unregister_chrdev删除设备驱动程序。......
2023-11-19
2.开发模式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。表1.2常用嵌入式开发工具......
2023-11-19
Linux软件开发一直在Internet环境下讲行。Linux开发工作经常是在Linux用户决定共同完成一个项目时开始的。由于这个活跃的开发环境,新的以Linux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。许多流行的Linux实用程序如C编译器、shell和编辑器都是GNU软件应用程序。Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。......
2023-11-19
具体来说,嵌入式系统是以应用为中心、计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。表1.1对比了通用计算机系统与嵌入式系统。......
2023-11-19
互联网采用TCP/IP协议并不是ISO规定的标准协议,但是作为应用最广泛的协议已经成为大规模网络通信的事实标准。TCP/IP协议实际上是由一组协议组成的,通常也称作TCP/IP协议簇。图10.10IPv4协议头部从图中可以看出这是个复杂的结构,最常用字段是源地址和目的地址,用来寻址和查路由。如图10.9所示,TCP协议位于网络互联层后,是IP协议的上层协议。......
2023-11-19
相关推荐