随笔分类 - linux
摘要:1.WslRegisterDistribution failed with error: 0x800701bc Error: 0x800701bc WSL https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4 down
阅读全文
摘要:[参考文章地址](https://blog.csdn.net/weixin_38956024/article/details/107159549?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%
阅读全文
摘要:学习地址
阅读全文
摘要:有些自定义属性需要结合驱动代码理解含义 结合驱动代码,理解是什么意思 另一种方法 最后去芯片原厂提供的资料中找找
阅读全文
摘要:of操作函数-获取设备树节点 示例 根据知道的信息,采用对应的函数 of操作函数-获取属性 示例 既然device_node会展开成platform_device(满足转换规则的),那么用platform_get_resource获取硬件资源也可以,但是会获取失败,解决方法如下 实战检验:解决获取设
阅读全文
摘要:学习地址 确定使用哪个设备树文件 设备树有层次关系,写这是哪个层次呢,是不对的 正确写法如下: 联系已经讲过的知识:基础语法、device_node转换成platform_device转换规则 编译、更新设备树 查看添加的节点
阅读全文
摘要:理论:device_node展开成platform_device 实例分析:device_node展开成platform_device
阅读全文
摘要:理论:dtb展开成device_node 每个节点对应一个device_node 实例分析:dtb展开成device_node 分析linux源码中dtb展开成device_node
阅读全文
摘要:01固定值 02文件大小 03structure block在dtb文件中的偏移地址(起始地址) 04字符串块在dtb文件中的偏移地址(起始地址) 05内存预留块在dtb文件中的偏移地址(起始地址) 06设备树数据结构的版本 07向后兼容的版本 08cpu的id值(等于cpu节点下的reg属性值)
阅读全文
摘要:pinmux概念 管脚有几种功能 ae24是芯片坐标 使用pinctrl设置管脚复用关系 取代了直接控制寄存器 客户端固定、服务端不同厂家不一样(但思想是一样的) 复用功能、电气属性(数据手册) 实践使用pinctrl设置管脚复用关系
阅读全文
摘要:实例分析 时钟 时钟生产者 clock-cells 引用时会使用 时钟生产者实例分析 时钟消费者 时钟消费者实例分析 cpu 层次关系如下: 最外面是cpus节点、然后是cpu-map节点、然后是cluster和socket节点 socket节点里面是cluster 实例 没有cpu-map节点,就
阅读全文
摘要:实例分析中断 同一个外设在不同厂商处理器上描述方式 gpio控制器 gpio-controller、中断控制器 interrupt-controller 1和2是原厂bsp工程师编写的 父节点中描述了 中断控制器级联 实践使用设备树描述中断 compatible 中断
阅读全文
摘要:设备树也是基于平台总线模型的 根节点 子节点 节点名称 reg属性 reg = < 内容由#address-cells和#size-cells决定 > 控制的是子节点 示例1 示例2 model属性 status属性 compatible属性 定义别名 &节点名称 或者 "节点路径" 通过别名给节点
阅读全文
摘要:学习地址 工具dtc源码就在linux内核script/dtc 另外一种方法
阅读全文
摘要:应用层实现i2c通信 结构体 示例 i2c总线实现client设备 非设备树实现client 设备树实现client i2c总线实现driver驱动 示例 框架 在probe函数里生成一个字符设备或杂项设备 驱动程序实现i2c通信
阅读全文
摘要:输入子系统 使用输入子系统,就不需要自己注册字符设备或杂项设备了 什么是输入子系统 键盘数据格式 访问设备节点获取上报的数据 输入子系统读取按键值 相关api 申请struct input_dev 注销struct input_dev 初始化event 初始化code 向linux内核注册input
阅读全文
摘要:内核定时器概念 与单片机定时器不同 计时方式 定时精度 一次性定时 内核定时器基础知识 struct timer_list 定时时间,用节拍数表示 相关操作函数 时间转换函数 静态定义结构体变量并且初始化 向内核注册定时器 删除定时器 修改定时值 示例 实现1s打印一次 按键消抖实验
阅读全文
摘要:tasklet tasklet结构体 struct tasklet_struct { }; unsigned long data还可以区分tasklet tasklet相关函数 示例核心代码 等待队列 阻塞、非阻塞 等待队列头 阻塞等待 唤醒 通过查看cpu占用率,知道轮休占用cpu高,中断占用cp
阅读全文
摘要:中断基础概念 中断上下文 设备树中的中断节点以及相关函数 怎么在设备树里面描述一个外设的中断节点 gpio和输入、出关系 中断相关函数 获取中断号相关函数(2个) 申请中断函数 中断处理函数 free_irq函数 按键中断实验 学习地址 以上设备树就弄好了 获取中断号另一种方式
阅读全文