- 博客(22)
- 收藏
- 关注
原创 Pyserial安装
Pyserial安装把pyserial安装包解压到Python安装路径使用cmd到pyserial目录下执行python setup.py build再执行python setup.py install打开Python GUI, 输入import serial, 若没有报错,代表安装成功
2020-09-29 09:58:15
2050
转载 spi driver: kthread_worker 和 kthread_work
kthread_worker 和 kthread_work作者: 李云鹏(qqliyunpeng@sina.cn)版本号: 20170107更新时间: <2017-01-07>原创时间: <2017-01-06>版权: 本文采用以下协议进行授权,自由转载 - 非商用 - 非衍生 - 保持署名 | Creative Commons BY-NC-ND 3.0,转载请注明作者及出...
2018-05-31 17:05:46
471
转载 linux内核 kthread_run函数
转载自:https://www.cnblogs.com/yuzaipiaofei/archive/2011/11/29/4124304.html 最近发现在内核创建线程的时候经常会用到kthread_run()这样的一个调用。于是准备拿出来学习一下。首先看看它的定义之处才发现它是一个宏函数,而不是一个真正意义上的函数。在include/linux/Kthread.h里有/*** kthread_r...
2018-05-31 15:46:13
1034
原创 container_of() 通过结构体成员,得到该结构体地址
container_of(ptr, type, member)type是一个struct类型;member是该type类型结构体中的一个具体成员;ptr是一个指向 具体type 类型的结构体member成员的指针;这个macro的作用是 通过一个指向结构体成员的指针,而计算出这个具体结构体的地址,并返回该地址(指向该结构体的指针)具体实现方法是,该结构体地址 = 结构体成员地址 - 该结构体成员相...
2018-05-29 15:24:28
631
原创 linux device tree
/======================================================================================================/1. dts是用文本格式画的一棵树,包含了要传递给内核的硬件及配置信息.dts基本上就是画一棵电路板上CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵...
2018-05-29 09:50:31
676
转载 Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别[转]
转自:https://www.cnblogs.com/sky-heaven/p/7390370.html我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。 那么,在内核空间中如何申请内存呢?一般...
2018-05-24 14:16:49
699
原创 Build 问题汇总
1 . suggesst explicit braces to avoid ambiguous (建议明确括号来避免模棱两可的)if 判断后加 {}包含if判断后要执行的语句, 避免歧义2. 返回值异常, 返回后的值打印和实际返回的值不一致API函数返回参数 数据类型错误...
2018-04-16 10:13:25
361
原创 Device tree资料汇总
较好参考自资料的地址记录:1. Linux DTS(Device Tree Source)设备树详解2. 我眼中的Linux设备树3.宋宝华-ARM linux 3.x的设备树(device tree)4. Linux设备树原理
2018-03-17 19:19:40
338
转载 linux 设备树详解
转载:https://www.cnblogs.com/xiaojiang1025/p/6131381.html概念Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的...
2018-03-16 17:18:37
621
原创 Source Insight使用
1. 添加文件 (1).Project -> Add and Remove Project Files -> 选择需要添加.c文件的文件夹 -> 点击右面的Add Tree按钮(2) ctrl + o
2018-03-16 16:27:50
171
原创 register bit操作
对register bit操作,目前见到的&:肯定是某些位 清0, 只关注0部分。一般用于写之前清除一些位的原始数据|:肯定是某些位 写1,只关注1部分。用于写入配置值...
2018-03-06 09:38:58
688
转载 部分spi linux driver probe 函数分析
作者:lknlfy 出处:http://www.cnblogs.com/lknlfy/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。957至962行,一个SPI控制器用一个master来描述。这里使用SPI核心的spi_alloc_master函数请求分配master。它在drivers/spi/spi.c文件...
2018-03-05 17:28:45
1169
转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成...
2018-03-02 15:20:10
308
转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动
通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1. 申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2. 配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3. 向通用接口层提供接口,使得...
2018-03-02 15:19:27
175
转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层
通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。...
2018-03-02 15:18:37
164
转载 Linux SPI总线和设备驱动架构之一:系统概述
SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧通常都是工作在主设备...
2018-03-02 15:17:26
156
转载 Linux SPI框架(下)
水平有限,描述不当之处还请之处,转载请注明出处http://blog.youkuaiyun.com/vanbreaker/article/details/7737833 本节以spidev设备驱动为例,来阐述SPI数据传输的过程。spidev是内核中一个通用的设备驱动,我们注册的从设备都可以使用该驱动,只需在注册时将从设备的modalias字段设置为"spidev",这样才能和spidev驱动匹配...
2018-03-01 20:38:16
710
转载 Linux SPI框架(上)
转载地址:http://blog.youkuaiyun.com/vanbreaker/article/details/7733476水平有限,描述不当之处还请指出,转载请注明出处http://blog.youkuaiyun.com/vanbreaker/article/details/7733476 Linux的SPI子系统采用主机驱动和外设驱动分离的思想,首先主机SPI控制器是一种平台设备,因此它以plat...
2018-03-01 20:36:38
131
转载 DEVICE_ATTR,device_create_file的使用
使用DEVICE_ATTR,可以在sys fs中添加“文件”,通过修改该文件内容,可以实现在运行过程中动态控制device的目的。类似的还有DRIVER_ATTR,BUS_ATTR,CLASS_ATTR。这几个东东的区别就是,DEVICE_ATTR对应的文件在/sys/devices/目录中对应的device下面。而其他几个分别在driver,bus,class中对应的目录下。这次主要介绍DEVI...
2018-03-01 20:30:08
320
转载 Linux SPI框架(中)
水平有限,描述不当之处还请指出,转载请注明出处http://blog.youkuaiyun.com/vanbreaker/article/details/7734150 上节介绍了SPI子系统中的一些重要数据结构和SPI子系统初始化的第一步,也就是注册SPI总线。这节介绍针对于s3c24xx平台的SPI子系统初始化,在看具体的代码之前,先上一张自己画的图,帮助理清初始化的主要步骤 显然,S...
2018-03-01 20:04:40
149
转载 linux中文件描述符fd和struct file结构体的释放
转载:http://blog.youkuaiyun.com/hunanchenxingyu/article/details/25218351简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描...
2018-03-01 17:10:36
477
原创 static的作用
两句话可以概括:1. 修饰全局变量或函数时,改变其修饰量作用域(project可见 --> 本file可见)2.修饰局部变量时,改变其修饰量存储域(栈区 --> 静态存储区)...
2018-02-28 19:27:27
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人