这段代码把GPB寄存器的物理地址映射到内存上,再进行操作。
注册一个独立的cdev设备的基本过程如下:
1、为struct cdev 分配空间
struct cdev *my_cdev = cdev_alloc();
2、初始化struct cdev ,主要是对 file_operations成员赋值,
void cdev_init(struct cdev *cdev, const struct file_operations *fops)
3、初始化cdev.owner 指针,实现模块管理时的指针引用
cdev.owner = THIS_MODULE;
4、cdev设置完成后,向内核字符设备数组添加新的struct cdev的信息(在执行这步之前必须确定你对struct cdev的以上设置已经完成)
int cdev_add(struct cdev *dev, dev_t devno, unsigned count)
dev 是 cdev 结构, devno是这个设备响应的第一个设备号, count 是应当关联到设备的设备号的数目.
5、从系统中移除一个字符设备:
void cdev_del(struct cdev *dev)