LINUX I2C驱动偶尔出现段错误原因之一
LINUX I2C驱动偶尔出现段错误原因之一
第一篇博客,来个好的开端。
在自己写 触摸屏 I2C 驱动程序(Linux 3.14)的时候,加载的时候会偶尔出现段错误,
我们都知道在加载驱动的时候会调用 i2c_register_Driver最终找到代码,通过 OOPS 代码回溯知道其最终会调用 of_driver_match_device 如下
static inline int of_driver_match_device(struct device *dev,const struct device_driver *drv)
{return of_match_device(drv->of_match_table, dev) != NULL;
}const struct of_device_id *of_match_device(const struct of_device_id *matches,const struct device *dev)
{if ((!matches) || (!dev->of_node))return NULL;return of_match_node(matches, dev->of_node);
}match = __of_match_node(matches, node);for (; matches->name[0] || matches->type[0] || matches->compatible[0]; matches++) {}static const struct of_device_id gt818_of_match[] = {{ .compatible = "fs4412,gt818", },{},
};.of_match_table = gt818_of_match,
驱动的 of_match_table 传入,加载时,进行匹配,如果没有空{} ;会造成越界,段错误;
所以,一开始对于 of_device_id 最后会有 {},感觉多余,但是现在来看不是多余的,为了代码安全,一定要加上
很小的一个初级知识点,不过不常见,特此记录。
LINUX I2C驱动偶尔出现段错误原因之一相关推荐
- linux I2C 驱动
原文地址: http://hello2mao.github.io/2015/12/02/Linux_I2C_driver.html 目录 一.LinuxI2C驱动--概述 1.1 写在前面 1.2 I ...
- linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西
# re: Linux I2C 驱动阅读的碰到的一些网上没有提到的东西 回复 更多评论 2009-04-11 13:39 by 初学都 楼主,你好.我看了你那篇<Linux I2C核心.总线 ...
- 【正点原子MP157连载】第四十章 Linux I2C驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【正点原子Linux连载】第六十一章 Linux I2C驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- 段错误原因分析和查找
转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...
- linux I2C驱动架构解析
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...
- Linux I2C驱动框架(超详细)
Linux I2C驱动框架 文章目录 Linux I2C驱动框架 一.几个重要的对象 1.I2C总线 2.I2C驱动 3.I2C设备 4.I2C设配器 小结 二.内核源码分析 1.注册I2C驱动 2. ...
- linux i2c 内核初始io,linux I2C驱动移植
linux I2C驱动移植 I²C总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信. I2C ...
- 《linux设备驱动开发详解》笔记——15 linux i2c驱动
<linux设备驱动开发详解>笔记--15 linux i2c驱动 15.1 总体结构 如下图,i2c驱动分为如下几个重要模块 核心层core,完成i2c总线.设备.驱动模型,对用户提供s ...
最新文章
- 网络主机监控-nagios应用漫谈(三)
- 基于Java的四大开源测试工具
- KNN算法--手写输入判断(Python3)
- c++读取图片_Pytorch读取,加载图像数据(一)
- JAVA入门级教学之(JAVA程序的加载和运行)
- Node.js进程管理之Process模块
- Unity3D游戏开发之GUI
- java中jsp时间插件_日期插件 - WEB源码|JSP源码/Java|源代码 - 源码中国
- 软件实施工程师项目经验(转
- 舆情热度实时数据查询分析怎么做的方法措施
- 谷歌浏览器插件 - 为 Microsoft Bing 搜索引擎首页添加一个【保存背景图片】的按钮(版本 1)
- 故宫博物馆爬虫(简略版)
- 微信小程序农历日期选择器 lunar-picker
- 父节点使用transform,子节点fixed定位失效
- scrapy爬取彼岸图网照片(搜索关键字,去重)
- scanf与空白字符
- 重庆大学计算机组装与维护,重庆大学2020年春季学期课程作业计算机组装与维护(37页)-原创力文档...
- 2022 - 软件构造复习
- CC26xx(CortexM3) IO Control
- wps里为什么没有华文楷体_如何用WPS演示做电影滚动字幕
热门文章
- 阻止事件冒泡:IE属性(cancelBubble)VS DOM方法(stopPropagation())(非技术文,纯属防坑)
- 计算机应用专业买什么游戏本,准大学生们买啥笔记本?按专业选择不纠结
- C#创建Windows窗体应用程序实例5【时钟】
- 使用LCD1602显示温度或切换显示时间
- Data-Driven 3D Voxel Patterns for Object Category Recognition
- emwin 仪表_emWin介绍和emWin开发的详细资料概述
- mysql unknow column_Python/MySQL查询错误:`Unknown column`
- C# 数据库之 DBF
- 微软GitHub宣布官方iOS/安卓客户端
- 改造智能风扇之——BLDC风扇改造硬件篇