• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
美丽的时光机器
博客园    首页    新随笔    联系   管理    订阅  订阅
05 2020 档案
九、i2c设备驱动

摘要:一、前言 前面第二篇文章中,我总结了Linux系统下i2c驱动中的适配器驱动,但是一个完整的总线-设备驱动模型应该包含总线驱动和设备驱动,总线驱动也就是前面所总结的i2c适配器驱动,现在再来总结一下i2c设备驱动的具体实现步骤。 二、硬件平台及内核版本 硬件平台:NXP I.MX6Q(四核) Ker 阅读全文
posted @ 2020-05-24 23:00 美丽的时光机器 阅读(413) 评论(0) 推荐(0)
八、延迟的工作队列INIT_DELAYED_WORK

摘要:前面讲到工作队列是一种可以将工作推后执行的一种机制,当我们希望某个工作以一个固定的周期去执行的时候可以使用延迟的工作队列来实现,通过分析延迟工作队列函数我们发现,它本质上也是通过注册内核定时器来保证这个延迟的时间的, 因此我们也可以使用内核定时器+工作队列的方式来代替延迟的工作队列。不过这种基于内核 阅读全文
posted @ 2020-05-13 11:50 美丽的时光机器 阅读(9181) 评论(1) 推荐(1)
七、create_workqueue和create_singlethread_workqueue

摘要:工作队列是一种可以将我们的工作推后执行的一种机制,在大部分时候,我们并不需要自己建立新的工作队列,而只需要定义工作就可以了,但是还是有必要了解工作队列的创建步骤如下: 1.先定义一个工作队列 static struct workqueue_struct *my_workqueue = NULL; 2 阅读全文
posted @ 2020-05-13 11:48 美丽的时光机器 阅读(1171) 评论(0) 推荐(0)
六、系统软中断、tasklet、工作队列work queue的区别及使用

摘要:前言:这篇文章不会对系统软中断、tasklet、工作队列work queue的内核实现机制进行深入分析,仅仅是谈一下这几种机制的不同以及简单的使用。有描述不对的地方,欢迎大家指出。 说明:在分析具体代码时候,用I.MX6Q平台的串口驱动代码来进行分析,内核版本是3.0.35版本 一、系统软中断 讲软 阅读全文
posted @ 2020-05-10 11:41 美丽的时光机器 阅读(1732) 评论(0) 推荐(0)
五、prink的使用以及console控制日志输出级别

摘要:事情描述:前段时间做项目,遇到了一个比较奇怪的问题,应用层下发的数据,经过驱动使用SPI发送到打印头上,数据出现被拉宽的现象。刚开始是怀疑应用层给的数据不及时导致数据输出受到延迟,后来放开串口调试,发现一按下打印,大量通过SPI输出数据的时候,会不断打印调试的语句,如果把调试语句去掉,打印就正常了, 阅读全文
posted @ 2020-05-10 11:37 美丽的时光机器 阅读(804) 评论(0) 推荐(0)
四、多核CPU下绑定某个中断到指定的CPU

摘要:前言:标题谈的是多核CPU下绑定某个中断到指定的CPU的方法,但是实际工作中,这个方法可以适配很多种数据接收的情况,所以就记录一下自己之前工作上遇到的具体某一个问题以及解决方法。 之前有一个项目,需要串口接收大量的数据,硬件平台采用的是NXP的I.MX6D系列芯片,双核CPU。实际发现,在接收数据的 阅读全文
posted @ 2020-05-10 11:23 美丽的时光机器 阅读(1786) 评论(0) 推荐(0)
三、I.MX6 SPI驱动(控制器驱动、设备驱动)

摘要:1 I.MX6Q的SPI适配器驱动(3.0.35版本内核) 2 文件路径:Kernel/linux_IMX6_CoreC_3.0.35_for_Linux/drivers/spi/spi_imx.c 3 一、控制器驱动 4 入口函数:spi_imx_init() 5 static int __ini 阅读全文
posted @ 2020-05-06 23:37 美丽的时光机器 阅读(902) 评论(0) 推荐(1)
零、Uboot中start.S源码解析

摘要:本文章转自https://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html 下面来对start.S进行详细分析,看看每一个部分,是如何实现的。 1.1. 设置C 阅读全文
posted @ 2020-05-03 21:31 美丽的时光机器 阅读(643) 评论(0) 推荐(0)
二、I.MX6Q I2C适配器驱动

摘要:1 I.X6Q的I2C适配器驱动(3.0.35版本内核) 2 入口函数(可以预知I2C总线内部也是platform总线) 3 static int __init i2c_adap_imx_init(void) 4 { 5 return platform_driver_probe(&i2c_imx_d 阅读全文
posted @ 2020-05-03 21:29 美丽的时光机器 阅读(235) 评论(0) 推荐(0)

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3