imx6 生成 spi设备节点】的更多相关文章

开发板需要使用spi接口,但是spi接口被touch占用,使用event进行操作.所以需要更改配置,生成spi设备节点. 参考链接 https://community.nxp.com/thread/322097 http://blog.csdn.net/yaolanshu_june/article/details/52152790 更改内核配置 make menuconfig 添加spi的支持,如下所示. Device Drivers [*] SPI support ---> --- SPI s…
本文记录spi设备节点的操作方法. SPI总线设备文件名通常为/dev/spidevN.P(N=0.1.2--,P=0.1.2--), 其中N表示第几路SPI总线,而P表示在该路SPI总线中使用哪个CS信号线. 参考链接: http://www.wzaobao.com/p/l5079K.html http://www.emcraft.com/stm32f429discovery/accessing-spi-devices-in-linux http://blog.csdn.net/yuanlul…
DTS是Device Tree Source的缩写,用来描述设备的硬件细节.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备.resource.i2c_board_info.spi_board_info以及各种硬件的platform_data.为了去掉这些垃圾代码,Linux采用DTS这种新的数据结构来描述硬件设备.采用…
驱动程序如下,加载驱动后,会在/dev文件夹下生成一个文件hello_device_node,是此驱动的设备节点 #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/miscdevice.h> #include <linux/fs.h> #define DRIVER_NAME "hello…
注册完设备和驱动之后,就需要注册设备节点 Linux杂项设备出现的意义在于:有很多简单的外围字符设备,它们功能相对简单,一个设备占用一个主设备号对于内核资源来说太浪费.所以对于这些简单的字符设备它们共用一个主设备号,不同的设备使用不同的次设备号. MISC_DYNAMIC_MINOR 表示由系统分配子设备号 生成helloword.ko文件后,执行 insmod helloworld,就可以在 dev/ 文件夹下看到 hello_device_node 文件,表明成功生成设备节点,执行 rmmo…
代码如下 #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/device.h> ; ; ; struct cdev cdev; static struct class *demo_class; static st…
一.最近做了一个 spi 设备驱动从板级设备驱动升级到设备树设备驱动,这其中要了解 spi 设备树代码的解析. 二. 设备树配置如下: 503 &spi0 { 504 status = "okay"; 505 pinctrl-name = "default"; 506 pinctrl-0 = <&spi0_pins>; 507 ti,pindir-d0-out-d1-in; 508 509 wk2124A { 510 compatible…
设备节点的创建有二种方法: 1)手动创建:mknode命令  当insmod后,还需要手动moknod创建设备节点才能被应用层打开,并且使用完成之后还要删除节点. 2) 自动创建:mdev mdev,它是应用层的一个应用程序.内核驱动和应用层mdev之间有一套信息传输机制(netlink协议),驱动注册和注销时信息会被传给mdev,由mdev在应用层进行设备文件的创建和删除.使用时,在安装驱动模块之前应用层(根文件系统)启用mdev,并且内核驱动模块中使用相应接口函数即可.mdev只认类,要想让…
/********************************************************************************** * I.MX6 Android 设备节点权限 * 说明: * Android 是使用ueventd来创建设备节点的,会解析ueventd.rc和ueventd.xxx.rc两个 * 文件中对设备节点权限设定来设定权限. * * 2017-4-30 深圳 龙华民治樟坑村 曾剑锋 ***************************…
将自己开发的内核代码加入到Linux内核中,需要3个步骤: 1.确定把自己开发代码放入到内核合适的位置 将demo_chardev.c文件拷贝到.../drivers/char/目录下. demo_chardev.c #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> /*结构体file_operations定义的头文件*/ #include <linux/fs.h…
设备号: 1.自己主动分配 major = register_chrdev(0,"first_drv",&first_sdv_fops);//注冊 注冊设备时给设备号写0,则内核会自己主动分配一个主设备号返回. 2.手动指定 到 proc/devices 文件下查找都有哪些主设备号.假设没有被使用的我们就可以拿过来使用它. 应用程序设备节点: 我们会使用open这个函数带开一个设备,那么open("dev/xxx")中dev/xxx 这个设备节点怎么来? 1…
1.前言 Android系统中,应用程序一般是使用Java语言进行开发的,但是通过C语言也可以进行Android中的可执行程序开发,接下来,将简单介绍在Android系统中如何通过C程序来访问内核中sysfs的属性文件,也可以理解为驱动设备节点. 2.添加kernel驱动设备节点 搞Linux内核驱动开发的都知道,内核里面提供了GPIO控制的LED设备驱动子系统,接下来,将通过添加内核配置和设备树节点来添加一个LED设备节点. 首先是内核里面leds-gpio设备驱动的配置选项: make me…
注释:这是19年初的博客,写得很一般,理解不到位也不全面.19年末得空时又重新看了RTThread的SPI和GPIO,这次理解得比较深刻.有时间时再整理上传. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------…
/********************************************************************************* * Linux chroot 并使用之前系统设备节点 * 说明: * 直接使用chroot结果/dev下没有设备,所有有些东西需要提前挂载,在进入chroot. * * 2016-12-30 深圳 南山平山村 曾剑锋 **********************************************************…
分类: LINUX 原文地址:devtmpfs文件系统创建设备节点 作者:wangbaolin719 http://blog.chinaunix.net/uid-27097876-id-4334356.html 一.devtmpfs概述 1.devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,令一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间. 2.重要解释 Devtmpfs lets the kernel create a tmpfs very…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="box"></div> <script> var boxEl = document.querySelector('#box') boxEl.innerH…
/************************************************************************* * Android udev /dev 设备节点权限 * 说明: * 现在的Linux系统设备节点权限一般都是通过动态配置,之前一直没找到具体 * 在哪里配置的说明,这次在看参考书的时候发现ueventd.rc就是用来做这件事的. * * 2016-5-14 深圳 南山平山村 曾剑锋 ********************************…
#include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/device.h> #include <linux/cdev.h> #include <linux/fs.h> #include <linux/ioctl.h> #define DRIVERNAME "xxx" #defi…
在字符设备驱动开发的入门教程中,最常见的就是用device_create()函数来创建设备节点了,但是在之后阅读内核源码的过程中却很少见device_create()的踪影了,取而代之的是device_register()与device_add(),将device_create()函数展开不难发现:其实device_create()只是device_register()的封装,而device_register()则是device_add()的封装. struct device *device_c…
前言 使用socketCan的过程中有时候没有can接口设备,但是需要测试一下can接口程序是否有问题, 此时需要系统模拟生成can设备,本文介绍linux平台模拟生成CAN设备的方法. 实现步骤 1.安装socketCan的驱动和can-utils的源码,具体可参考here(2-3-6): 2.加载虚拟CAN设备: 操作方法如下: 1) sudo modprobe vcan 2) sudo ip link add dev vcan0 type vcan 3) sudo ip link set…
1. Linux kernel创建的/dev/下的设备节点是不对的, 其实是kernel仅负责在/sys/(基于内存的虚拟文件系统)创建一大堆下目录和文件,而真正的设备节点是在用户空间程序创建的,应该是udev实现的. 2. 对于非android系统,应该是mdev,其实到底谁来处理,关键看kernel发送uevent事件,应用层通过什么方式处理的,是侦听socket还是通过设置/proc/sys/kernel/hotplug命令文件. 3. Android的设备节点和Linux的设备节点创建方…
/************************************************************************************** * linux 模拟生成 CAN 设备 * 说明: * 最近在看CANopenSocket的过程中看到能够生成模拟的CAN设备,于是查了点资料,结果发现 * 真的可以,这样做测试就OK. * * 2016-8-12 深圳 南山平山村 曾剑锋 *****************************************…
*注:本文来自http://blog.csdn.net/lwj103862095/article/details/17470573 一.首先需要在最开始定义两个数据结构: static struct class *firstdrv_class; static struct device *firstdrv_device; 二.在init函数里通过class_create和device_create函数创建相应的设备节点,示例代码如下: static int first_drv_init(void…
I.MX6 linux eGalaxTouch 自动获取设备节点 \\\\\\\\\\\\\\-*- 目录 -*-///////////// | 一. 需求: | 二. /proc/bus/input/devices 内容: | 三. 解决方法: | 四. 实际应用: -------------------------------------- 一. 需求: 获取eGalaxTouch的输入设备节点 二. /proc/bus/input/devices 内容: root@freescale /p…
本文主要介绍RT-thread中的SPI设备驱动,涉及到的文件主要有:驱动框架文件(spi_dev.c,spi_core.c,spi.h),底层硬件驱动文件(spi_hard.c,spi_hard.h).这里spi_hard.c和spi_hard.h是指利用MCU的硬件SPI接口,而不是通过GPIO口来模拟SPI时序.应用SPI设备驱动时,需要在rtconfig.h中宏定义#define RT_USING_SPI. 一.SPI设备驱动框架 先来看spi.h中的一些数据结构: ** * SPI m…
转自:http://blog.csdn.net/rockrockwu/article/details/7357648 系统启动过程中platform设备.驱动注册完毕,为什么在/dev目录下就自动创建好设备节点了? 在/dev目录自动创建设备节点可以通过class_create(),然后再device_create().但是在跟踪 内核platform注册过程中可以发现,其实这里面并未调用上诉两个函数,那么platform注册后 如何在/dev目录下创建设备文件节点? int device_ad…
/************************************************************************* * Linux Shell 判断块设备节点是否存在 * 说明: * 能牌问shell脚本-f不能判断mmc设备节点的问题,查了一下资料,发现不能 * 使用-f来判断,要使用-e或者-b来判断才行. * * 2017-1-17 深圳 南山平山村 曾剑锋 *************************************************…
主要包括两个SPI设备步骤:register_chrdevspi_register_driver关键点1:spi_board_info可以去已经运行的板子下面找例子:/sys/bus/spi/drivers已辰汉电子MX27 MDK 开发板为例:在/sys/bus/spi/drivers目录:lcd_spi pmic_spi 对应的:mx27mdk27v0.c文件中定义如下: static struct spi_board_info mxc_spi_board_info[] __initdata…
一.如何对设备操作 linux中对设备进行操作是通过文件的方式进行的,包括open.read.write.对于设备文件,一般称其为设备节点,节点有一个属性是设备号(主设备号.次设备号),其中主设备号将设备文件与驱动模块对应起来当我们open一个设备节点时,告诉了kernel要操作的是是主设备号为XX的节点,然后kernel会通过过XX来寻找合适的内存模块,进而调用内存模块中定义的open函数由于操作节点之前kernel就需要有主设备号的信息,因此主设备号的申请.具有该主设备号的字符设备的添加都需…
#include <linux/init.h>// __init __exit #include <linux/module.h> // module_init module_exit #include <linux/fs.h> //file_operations #include <asm/uaccess.h> //copy_from_user copy_to_user #include <mach/regs-gpio.h> #include…