自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1969

转载 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 438

转载 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 1001

原创 container_of() 通过结构体成员,得到该结构体地址

container_of(ptr, type, member)type是一个struct类型;member是该type类型结构体中的一个具体成员;ptr是一个指向 具体type 类型的结构体member成员的指针;这个macro的作用是 通过一个指向结构体成员的指针,而计算出这个具体结构体的地址,并返回该地址(指向该结构体的指针)具体实现方法是,该结构体地址 = 结构体成员地址 - 该结构体成员相...

2018-05-29 15:24:28 605

原创 linux device tree

/======================================================================================================/1. dts是用文本格式画的一棵树,包含了要传递给内核的硬件及配置信息.dts基本上就是画一棵电路板上CPU、总线、设备组成的树,Bootloader会将这棵树传递给内核,然后内核可以识别这棵...

2018-05-29 09:50:31 632

转载 Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别[转]

转自:https://www.cnblogs.com/sky-heaven/p/7390370.html我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。   那么,在内核空间中如何申请内存呢?一般...

2018-05-24 14:16:49 652

原创 Build 问题汇总

1 . suggesst explicit braces to avoid ambiguous  (建议明确括号来避免模棱两可的)if 判断后加 {}包含if判断后要执行的语句, 避免歧义2. 返回值异常, 返回后的值打印和实际返回的值不一致API函数返回参数 数据类型错误...

2018-04-16 10:13:25 324

原创 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 328

转载 linux 设备树详解

转载:https://www.cnblogs.com/xiaojiang1025/p/6131381.html概念Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的...

2018-03-16 17:18:37 588

原创 Source Insight使用

1. 添加文件 (1).Project -> Add and Remove Project Files -> 选择需要添加.c文件的文件夹 -> 点击右面的Add Tree按钮(2) ctrl + o

2018-03-16 16:27:50 140

原创 register bit操作

对register bit操作,目前见到的&:肯定是某些位 清0, 只关注0部分。一般用于写之前清除一些位的原始数据|:肯定是某些位 写1,只关注1部分。用于写入配置值...

2018-03-06 09:38:58 635

转载 部分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 1102

转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成...

2018-03-02 15:20:10 218

转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3.    向通用接口层提供接口,使得...

2018-03-02 15:19:27 163

转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。...

2018-03-02 15:18:37 146

转载 Linux SPI总线和设备驱动架构之一:系统概述

SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS    片选信号SCK  时钟信号MISO  主设备的数据输入、从设备的数据输出脚MOSI  主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧通常都是工作在主设备...

2018-03-02 15:17:26 144

转载 Linux SPI框架(下)

水平有限,描述不当之处还请之处,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7737833       本节以spidev设备驱动为例,来阐述SPI数据传输的过程。spidev是内核中一个通用的设备驱动,我们注册的从设备都可以使用该驱动,只需在注册时将从设备的modalias字段设置为"spidev",这样才能和spidev驱动匹配...

2018-03-01 20:38:16 598

转载 Linux SPI框架(上)

转载地址:http://blog.csdn.net/vanbreaker/article/details/7733476水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7733476       Linux的SPI子系统采用主机驱动和外设驱动分离的思想,首先主机SPI控制器是一种平台设备,因此它以plat...

2018-03-01 20:36:38 118

转载 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 300

转载 Linux SPI框架(中)

水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7734150           上节介绍了SPI子系统中的一些重要数据结构和SPI子系统初始化的第一步,也就是注册SPI总线。这节介绍针对于s3c24xx平台的SPI子系统初始化,在看具体的代码之前,先上一张自己画的图,帮助理清初始化的主要步骤 显然,S...

2018-03-01 20:04:40 138

转载 linux中文件描述符fd和struct file结构体的释放

转载:http://blog.csdn.net/hunanchenxingyu/article/details/25218351简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描...

2018-03-01 17:10:36 432

原创 static的作用

两句话可以概括:1. 修饰全局变量或函数时,改变其修饰量作用域(project可见 --> 本file可见)2.修饰局部变量时,改变其修饰量存储域(栈区 --> 静态存储区)...

2018-02-28 19:27:27 475

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除