ioremap_gpio子系统_中断

Valora ·
更新时间:2024-09-20
· 533 次阅读

ioremap_gpio子系统_中断
【一】、ioremap

void *ioremap(phys_addr_t offset, unsigned long size) 功能:物理地址到虚拟地址映射 参数: @offset 物理地址 @size 映射地址范围 返回值:成功返回映射后的虚拟地址,失败返回NULL void iounmap(void __iomem *addr) 功能:解映射 参数: @addr 虚拟地址 【1】led驱动: 字符设备驱动 register_chrdev 创建设备文件 --- class_create device_create misc杂项设备 参考代码

【二】、GPIO子系统

struct gpio { unsigned gpio; //gpio号 unsigned long flags; //GPIOF_DIR_OUT GPIOF_DIR_IN GPIOF_INIT_LOW //GPIOF_INIT_HIGH GPIOF_OUT_INIT_LOW //GPIOF_OUT_INIT_HIGH const char *label; //名字 }; gpio号:s5p6818 GPIOA[31:0] : 0 - 31 GPIOB[31:0] : 32-63 GPIOC[31:0] : 64-95 GPIOD[31:0] : GPIOE[31:0] : int gpio_request(unsigned gpio, const char *label) 功能:向内核请求注册使用gpio 参数: @gpio gpio号 @label 名字 返回值:失败返回负数错误码 void gpio_free(unsigned gpio) //释放gpio int gpio_request_one(unsigned gpio,unsigned long flags, const char *label) 功能:向内核请求注册使用gpio,并设置gpio引脚功能 参数: @gpio gpio号 @flags gpio功能 @label 名字 返回值:失败返回负数错误码 void gpio_free(unsigned gpio) //释放gpio int gpio_request_array(const struct gpio *array, size_t num) 功能:向内核请求注册使用一组gpio,并设置gpio引脚功能 参数: @array struct gpio结构体指针 @num 个数 返回值:失败返回负数错误码 void gpio_free_array(const struct gpio *array, size_t num) int gpio_direction_input(unsigned gpio) 功能:设置gpio引脚的方向为输入方向 参数: @gpio gpio号 int gpio_direction_output(unsigned gpio, int value) int gpio_get_value(unsigned gpio) void gpio_set_value(unsigned gpio, int value) int gpio_to_irq(unsigned gpio) 功能:将gpio号转成中断号 参数: @gpio gpio号 返回值:成功返回中断号,失败返回负数错误码

【三】中断


作者:Douplease



gpio 中断 系统

需要 登录 后方可回复, 如果你还没有账号请 注册新账号