摘要: gpio_chip注册 创建并初始化gdev,然后调用gpiodev_add_to_list注册到链表 调用of_gpiochip_add,初始化设备树相关数据,比如of_xlate函数指针 通过设备树获取gpio流程 通过of_get_named_gpiod_flags得到gpio_desc 调用 阅读全文
posted @ 2019-09-23 17:37 qzhang1535 阅读(1501) 评论(0) 推荐(0) 编辑
摘要: 一、相关数据结构介绍 二、时钟的注册 创建分配clk_core结构体对象,并填充其成员变量 调用__clk_create_clk创建用户侧时钟结构体 调用__clk_init将clk_core加入到时钟树里 对clk_core进行约束性检查 将clk_core加入时钟树 对clk_core进行初始化 阅读全文
posted @ 2019-06-18 15:03 qzhang1535 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 一、regulator子系统常用数据结构 regulator_register注册时需要的两个结构体参数 regulator_register注册时根据regulator_desc和regulator_config最终生成的结构体 二、regulator的注册 分配和创建regulator_dev设 阅读全文
posted @ 2019-06-10 09:15 qzhang1535 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 一、ubuntu设备树编译方法 1. ubuntu安装dtc工具 2. 使用dtc工具编译设备树源文件 3. 使用dtc工具反编译设备树二进制文件 二、解析设备树并注册平台设备of_platform_populate 该函数为arm平台板级初始化入口,调用init_machine板级初始化 调用of 阅读全文
posted @ 2019-06-06 10:11 qzhang1535 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 一、数据结构 pinctrl为具体驱动程序使用pinctrl接口,将pinctrl和对应的设备相关联 pinctrl_list保存系统中所有的pinctrl句柄 name为设备树中pinctrl的statename dev_name为与pinctrl相关联的设备的名称 ctrl_dev_name为p 阅读全文
posted @ 2019-05-30 11:09 qzhang1535 阅读(879) 评论(0) 推荐(0) 编辑
摘要: 一、pinctrl相关数据结构 name pinctrl名称 pinctrl_pin_desc 管脚描述结构体 npins 管脚个数 number管脚编号 管脚名字 根据pinctrl_desc创建pinctrl_dev并注册到系统中 二、pinctrl子系统的debug调试接口 调用pinctrl 阅读全文
posted @ 2019-05-23 09:37 qzhang1535 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 将logo.png图片转化为ppm格式图片 阅读全文
posted @ 2019-05-14 14:22 qzhang1535 阅读(436) 评论(0) 推荐(0) 编辑
摘要: component在多个模块相互关联并且存在一定的初始化顺序时非常有用。现分析下其工作原理,以便后续组织自己的驱动模块。 一、component_match分析 component_match在master和component匹配时用,它包含一个匹配函数指针和一个void 类型的数据指针,其结构体定 阅读全文
posted @ 2019-01-04 15:42 qzhang1535 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 一、创建ubi分区 二、挂载ubifs文件系统 三、加载文件到内存 阅读全文
posted @ 2019-01-03 10:04 qzhang1535 阅读(2672) 评论(0) 推荐(0) 编辑
摘要: 一、使用devmem查看指定物理内存地址的值 二、使用内核自带动态调试打印 三、故意让系统崩溃 四、打印调用栈 阅读全文
posted @ 2018-12-29 13:11 qzhang1535 阅读(1659) 评论(0) 推荐(0) 编辑