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驱动偶尔出现段错误原因之一相关推荐

  1. linux I2C 驱动

    原文地址: http://hello2mao.github.io/2015/12/02/Linux_I2C_driver.html 目录 一.LinuxI2C驱动--概述 1.1 写在前面 1.2 I ...

  2. linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西

    # re: Linux I2C 驱动阅读的碰到的一些网上没有提到的东西  回复  更多评论 2009-04-11 13:39 by 初学都 楼主,你好.我看了你那篇<Linux I2C核心.总线 ...

  3. 【正点原子MP157连载】第四十章 Linux I2C驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  4. 【正点原子Linux连载】第六十一章 Linux I2C驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  5. 段错误原因分析和查找

    转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...

  6. linux I2C驱动架构解析

    I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. ...

  7. Linux I2C驱动框架(超详细)

    Linux I2C驱动框架 文章目录 Linux I2C驱动框架 一.几个重要的对象 1.I2C总线 2.I2C驱动 3.I2C设备 4.I2C设配器 小结 二.内核源码分析 1.注册I2C驱动 2. ...

  8. linux i2c 内核初始io,linux I2C驱动移植

    linux I2C驱动移植 I²C总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信. I2C ...

  9. 《linux设备驱动开发详解》笔记——15 linux i2c驱动

    <linux设备驱动开发详解>笔记--15 linux i2c驱动 15.1 总体结构 如下图,i2c驱动分为如下几个重要模块 核心层core,完成i2c总线.设备.驱动模型,对用户提供s ...

最新文章

  1. 网络主机监控-nagios应用漫谈(三)
  2. 基于Java的四大开源测试工具
  3. KNN算法--手写输入判断(Python3)
  4. c++读取图片_Pytorch读取,加载图像数据(一)
  5. JAVA入门级教学之(JAVA程序的加载和运行)
  6. Node.js进程管理之Process模块
  7. Unity3D游戏开发之GUI
  8. java中jsp时间插件_日期插件 - WEB源码|JSP源码/Java|源代码 - 源码中国
  9. 软件实施工程师项目经验(转
  10. 舆情热度实时数据查询分析怎么做的方法措施
  11. 谷歌浏览器插件 - 为 Microsoft Bing 搜索引擎首页添加一个【保存背景图片】的按钮(版本 1)
  12. 故宫博物馆爬虫(简略版)
  13. 微信小程序农历日期选择器 lunar-picker
  14. 父节点使用transform,子节点fixed定位失效
  15. scrapy爬取彼岸图网照片(搜索关键字,去重)
  16. scanf与空白字符
  17. 重庆大学计算机组装与维护,重庆大学2020年春季学期课程作业计算机组装与维护(37页)-原创力文档...
  18. 2022 - 软件构造复习
  19. CC26xx(CortexM3) IO Control
  20. wps里为什么没有华文楷体_如何用WPS演示做电影滚动字幕

热门文章

  1. 阻止事件冒泡:IE属性(cancelBubble)VS DOM方法(stopPropagation())(非技术文,纯属防坑)
  2. 计算机应用专业买什么游戏本,准大学生们买啥笔记本?按专业选择不纠结
  3. C#创建Windows窗体应用程序实例5【时钟】
  4. 使用LCD1602显示温度或切换显示时间
  5. Data-Driven 3D Voxel Patterns for Object Category Recognition
  6. emwin 仪表_emWin介绍和emWin开发的详细资料概述
  7. mysql unknow column_Python/MySQL查询错误:`Unknown column`
  8. C# 数据库之 DBF
  9. 微软GitHub宣布官方iOS/安卓客户端
  10. 改造智能风扇之——BLDC风扇改造硬件篇