📄 gpio.h.bak
字号:
/*
*
*
*
*
*/
#ifndef __GPIO_H__
#define __GPIO_H_
#include <linux/ioctl.h>
#ifndef __IO__
//inode:设备节点,file:打开的文件,cmd:特殊命令编号,arg:0-31
static int gpio_dev_ioctl(struct inode *inode, struct file *file, unsinged int cmd, unsingned long arg);
#endif
//#define GPIO_PIN_LOW 0
//#define GPIO_PIN_HIGH 1
// GPIO registers
#define GPIO_BASE 0x01c67000 //GPIO的起始地址
#define GPIO_SPACE_LEN 0x64 //GPIO的大小
//DIR register offsets
#define DIR23 0x38
#define DIR01 0x10
// register offsets
//bank01在程序中的集中偏移量是不是这些,(待定)
#define GPIO_SET_OFFSET 0x8 //这三个偏移量是基于GPIO_ADDR_BASE
#define GPIO_CLR_OFFSET 0xC
#define GPIO_DIR_OFFSET 0x0
#define GPIO_ADDR_BASE (GPIO_BASE + 0x10) //Reg[]的起始地址
#define GPIO_PORT_ADD (DIR23 - DIR01) //第一个寄存器和第二个寄存器的地址差值
//每个寄存器之间的差是一样的,所以只取 01 和23的就可以
/*
#define GPIO_OUT_OFFSET 0x14
#define GPIO_IN_OFFSET 0x20
#define SET_RIS_TRIG01 0x24
#define CLR_RIS_TRIG01 0x28
#define SET_FAL_TRIG01 0x2C
#define CLR_FAL_TRIG01 0x30
#define INTSTAT01 0x34
//bank23
#define DIR23 0x38
#define OUT_DATA23 0x3C
#define SET_DATA23 0x40
#define CLR_DATA23 0x44
#define IN_DATA23 0x48
#define SET_RIS_TRIG23 0x4C
#define CLR_RIS_TRIG23 0x50
#define SET_FAL_TRIG23 0x54
#define CLR_RIS_TRIG23 0x58
#define INTSTAT23 0x5C
//bank45
#define DIR45 0x60
#define OUT_DATA45 0x64
#define SET_DATA45 0x68
#define CLR_DATA45 0x6C
#define IN_DATA45 0x70
#define SET_RIS_TRIG45 0x74
#define CLR_RIS_TRIG45 0x78
#define SET_FAL_TRIG45 0x7C
#define CLR_FAL_TRIG45 0x80
#define INTSTA45 0x84
//bank6
#define DIR6 0x88
#define OUT_DATA6 0x8C
#define SET_DATA6 0x90
#define CLR_DATA6 0x94
#define IN_DATA6 0x98
#define SET_RIG_TRIG6 0x9c
#define CLR_RIS_TRIG6 0xA0
#define SET_FAL_TRIG6 0xA4
#define CLR_FAL_TRIG6 0xA8
#define INTSTAT6 0xAC
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -