linux下pcf8563驱动时钟使用】的更多相关文章

环境: HelperA64开发板 Linux3.10内核 时间:2019.01.17 目标:PCF8563实时时钟驱动的使用 问题:因为pcf8563的驱动是linux内核自带的,网上也有很多分析的方法,之后再深入分析下pcf的驱动,写驱动,得首先使用它. 1.以前各大厂商都会有自己的arm架构代码在内核当中,而我们只需要进入相应的架构修改代码就行了,但是之后的内核发生了很大变化,就是引入了设备树,所以花了一段时间才知道这个改变,首先如图,我这样加PCF8563设备在设备树中 ​ 修改内核配置后…
I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux下I2C驱动体系结构来完成.下面比较下这两种方法: 第一种方…
本文转载自:http://blog.csdn.net/wangpengqi/article/details/17711165 I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线. 因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中. linux下的驱动思路 在linux系统下编写I2C驱动,目前主要有两种方法,一种…
源: Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析…
编写驱动程序,首先要了解是什么类型的设备.linux下的设备分为三类,分别为:字符设备,块设备和网络设备.字符设备类型是根据是否以字符流为数据的交换方式,大部分设备都是字符设备,如键盘,串口等,块设备则是以块为单位进行管理的设备,如,磁盘.网络设备就是网卡等. 其次要了解应用程序和驱动程序的区别,两者的主要区别分为以下三点: 1入口函数的任务不相同,应用程序完成一个任务,驱动只完成初始化工作,比如中断 申请,寄存器设置,定时器设置. 2运行时的cpu模式不相同,驱动具有很高的权限,应用程序是在用…
1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的.虚拟的platform总线,用以维持总线.驱动.设备的关系. 因此,对于实现一个linux下的设备驱动,可以划分为两大步: 1.设备注册: 2.驱动注册. 当然,其中还有一些细节问题: 1.驱动的probe函数 2.驱动和设备是怎么进行绑定的. 1…
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过. 本人做过2年的嵌入式驱动开发,usb占了一大半的时间.期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:) 首先,扫盲: 要做的是阅读usb Spec(英文的哦,其实很多文章.书籍和资料真有水平的还是原创的好,就像食品…
SDIO-Wifi模块是基于SDIO接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈.可以实现用户主平台数据通过SDIO口到无线网络之间的转换.SDIO具有数据传输快,兼容SD.MMC接口等特点. 对于SDIO接口的wifi,首先,它是一个sdio的卡的设备.然后具备了wifi的功能.所以.注冊的时候还是先以sdio的卡的设备去注冊的. 然后检測到卡之后就要驱动他的wifi功能了.显然,他是用sdio的协议,通过发命令和数据来控制的.以…
原文地址  http://blog.csdn.net/llxmedici/article/details/6282372 打算跟着友善之臂的<mini2440 linux移植开发指南>来做个LED驱动,虽然LED的原理简单得不能再简单了,但是要把kernel中针对于s3c24**的GPIO的一些数据结构,还有函数搞清楚也不是那么轻松的事,所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的定义,并对驱动加以验证 ***********************************…
转自:http://blog.csdn.net/brucexu1978/article/details/17583407 版权声明:本文为博主原创文章,未经博主允许不得转载. http://www.cnblogs.com/general001/articles/2319552.html http://blog.csdn.net/uruita/article/details/7263290:MODULE_DEVICE_TABLE http://blog.chinaunix.net/uid-2590…
// struct miscdevice { int minor; const char *name; const struct file_operations *fops; struct list_head list; struct device *parent; struct device *this_device; const char *nodename; mode_t mode; }; int misc_register(struct miscdevice * misc);//注册为杂…
上篇最后提出的疑问是结构体gpio_chip中的成员函数set等是怎么实现的,在回答之前先介绍下gpio_desc这个结构体. 如上图所示,右上方部分为GPIO驱动对其它驱动提供的GPIO操作接口,其对应的右下方部分为GPIO硬件操作接口,也就是说对外提供的接口最终会一一对应的对硬件GPIO进行操作. 再来看左边部分,左上方部分为一全局数组,记录各个GPIO的描述符,即对应左下方的gpio_desc结构体,其中gpio_chip指向硬件层的GPIO,flags为一标志位,用来指示当前GPIO是否…
操作系统: debian 7.4(linux 3.2.54) 硬件: 一个无线鼠标.一个有线鼠标.usb集线器. 从淘宝上花了15块钱买了个无线鼠标,很好奇它的驱动程序是如何执行的. 首先将usb集线器插入到pc的usb口,然后将无线鼠标插入到usb集线器的一个usb口上. 执行下面命令来捕获uevent事件: sudo udevadm monitor 然后插入和移除再插入无线鼠标的nano接收器(为了完整的查看信息才操作这么多次),可以在控制台下查看到下面的信息: $ sudo udevadm…
前段时间,项目中有个需求,需要将linux和windows的时间进行同步,网上也有很多类似时钟同步的帖子,大致类似:不过本次的linux的机器有点特殊,没有service命令,而且要求在另一台suse的linux机器上通过脚本连接到目的linux机器进行时钟同步.起先我也被困扰的很久,不过办法都是人想出来的,接下来叙述一下实现的过程: 操作linux--------目的linux----------目的windows 1.有三台机器,脚本所在的linux----操作linux,需要同步的客户端机…
/******************************* * *杂项设备驱动:miscdevice *majior=10; * * *****************************/ #include <linux/kernel.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/types.h> #include <linux/init.h> /…
1.内核自带的SPI相关的驱动文件 项目中有CPU与FPGA进行通信,用到SPI接口: SPI头文件在: linux-kernel/include/linux/spi.h SPI实现在: linux-kernel/drivers/spi/spi.c omap2_mcspi.c spidev.c DVS8168开发板在以下文件中初始化SPI: linux-kernel/arch/arm/mach-omap2/board-ti8168evm.c 上述文件中有: const struct flash_…
其实就是实现一下几个Fn键的功能,没有标题吹得那么牛. 不知道为啥,LG gram这本子意外的小众. 就因为这个,装Linux遇到的硬件问题就没法在网上直接搜到解决办法了. Fn + F9 实现阅读模式 设计上是:按一下屏幕蓝光减少,F9键上的LED亮:再按一下恢复原样. 具体实现我们直接读文档: Kernel 4.2.0的时候更新了一个module 叫 lg-laptop,手册如上 现在kernel都5.9.0了,这文档好像没变过的样子-- 按文档说的,/sys/devices/platfor…
构造和运行模块 insmod modprobe rmmod 用来装载模块到正运行的内核和移除模块的用户空间工具. #include<linux/init.h> module_init(init_function); module_exit(cleanup_function); 用于指定模块的初始化和清除函数的宏. __init __initdata __exit __exitdata 仅用于模块初始化或清除阶段的函数(__init .__exit)和数据 (__initdata.__exitd…
//gpio_request申请gpio口 int gpio_request(unsigned gpio, const char *label) { struct gpio_desc *desc; struct gpio_chip *chip; int status = -EINVAL; unsigned long flags; spin_lock_irqsave(&gpio_lock, flags); // gpio_lock是自旋锁,上锁,保存FLAG在flags变量 if (!gpio_i…
首先来看s3c_gpio_cfgpin(); int s3c_gpio_cfgpin(unsigned int pin, unsigned int config) { struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin);//得到对应GPIO结构体首指针,里面包含了该GPIO的各种参数 unsigned long flags; int offset; int ret; if (!chip) return -EINVAL; offset = p…
2C协议规定了主机和从机的概念,在驱动中采用的多是适配器(主机)和设备(从机).首先,i2c规定  Bus    -> Algorithm  算法               Adapter   适配器  Device -> Driver                 Client     从机设备…
我的 PC 型号是 Acer V3-572G, 安装了 Debian 后, 发现只能通过有线网络上网, 无法识别无线网卡, 以下是解决的过程(不局限于此型号 PC): 在命令行键入 lspci , 得到网卡型号「BCM43228」 ```shell xox@debian-x64:~$ lspci 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b) 00:02.0 VGA compatible co…
控制GPIO_1_28的输出: #define MY_BOMB_GPIO       IMX_GPIO_NR(1, 28) 配置为输出方式: gpio_direction_output (MY_BOMB_GPIO,0); 设置电平状态 gpio_set_value(MY_BOMB_GPIO,1); 读取电平状态 tem=  gpio_get_value(MY_BOMB_GPIO);…
端点 USB 通讯的最基本形式是通过一个称为端点的东西.一个USB端点只能向一个方向传输数据(从主机到设备(称为输出端点)或者从设备到主机(称为输入端点)).端点可被看作一个单向的管道. 一个 USB 端点有 4 种不同类型, 分别具有不同的数据传送方式: 控制CONTROL 控制端点被用来控制对 USB 设备的不同部分访问. 通常用作配置设备.获取设备信息.发送命令到设备或获取设备状态报告.这些端点通常较小.每个 USB 设备都有一个控制端点称为"端点 0", 被 USB 核心用来在…
由于我电脑的各种奇葩问题的存在,导致我装上Ubuntu13.10之后网卡居然无法使用,坚持了挺久使用无线网,终于坚持不住了,百度了各种解决方式,终于成功解决.这里也记录一下我的解决过程,供大家参考.大概有以下几种方式: 一.直接百度,Google “Linux下网卡驱动下载”,不过结果并不乐观...基本没有能用的东西. 二.去电脑的官网下载,有个用Dell的哥们貌似就是这么干的.可是当我登上大联想的官网,一查驱动发现全是for windows.于是呵呵,看来这两家还 是有不小的差距的啊... 三…
东西很简单,几句话就能说清除. 使用lsipc检查你需要安装到硬件,记住硬件到关键型号,去搜索引擎搜索linux下的驱动文件 对文件进行安装简单的解压后基本上是 ./configure && make && make install 安装完成后可能需要重启计算机,重启后检查驱动是否安装完成.…
原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家. Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的…
linux下编译运行驱动 嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发. 按照如下方法就可以成功编译出hello world模块驱动. 1.首先确定本机linux版本 怎么查看Linux的内核kernel版本? 'uname'是Linux/unix系统中用来查看系统信息的命令,适用于所有Linux发行版.配合使用'uname'参数可以查看当前服务器内核运行的各个状态. #uname…
前言 目前,linux系统常用的音频驱动有两种形式:alsa oss alsa:现在是linux下音频驱动的主要形式,与简单的oss兼容.oss:过去的形式而我们板子上的uda1341用的就是alsa驱动.alsa概述:因为我们用的是板上系统,用的也是alsa 的一个soc子系统.所以我们直接讲解alsa soc子系统. ALSA SoC LayerALSA板上系统层============== The overall project goal of the ALSA System on Chi…
linux下Ramdisk驱动 1 什么是Ramdisk Ramdisk是一种模拟磁盘,其数据实际上是存储在RAM中,它使用一部分内存空间来模拟出一个磁盘设备,并以块设备的方式来组织和访问这片内存.对于用户来说可以把Ramdisk与通常的硬盘分区同等对待来使用.那些经常被访问.并且不会被更改的文件,可以通过Ramdisk被存放在内存中,这样能够明显地提高系统的响应性能. 2  Ramdisk的产生过程 近几年来,计算机的CPU.内存和显卡等主要配件的性能都提升得很快,而与之相对应的磁盘系统性能正…